2015-11-14 1 views
0

Я столкнулся с уязвимостью Blind SQL injection, которая основана на Boolean, но ответ, который я получаю с сервера, основан на времени. Другими словами, если условие является «ложным», веб-сайт возвращает оператор «error». Если условие «true», страница НЕ загружается.Сочетание логической и зависящей от времени SQL-инъекции в sqlmap

Например

http://testingzone.com/id=123+OR+1=2

возвращается "Ошибка Invalid ID"

http://testingzone.com/id=123+OR+1=1

возвращает ничего, и страница продолжает загрузку навсегда (тест I ed за 60 секунд без ответа, а также я не получил ошибку тайм-аута в браузере)

Я могу выполнить атаку вручную, но мне интересно узнать, как выполнить такую ​​атаку в sqlmap.

sqlmap не смог определить, что он предназначен для инъекций, но он показывает несколько «ошибок таймаута запроса». Как я могу сказать sqlmap, что когда время запроса запроса означает, что условие истинно?

[UPDATE]

Я вроде начал формировать образ о том, почему это занимает так много времени, чтобы ответить ... Когда я добавляю LIMIT 1 для запроса я получаю сообщение об ошибке, хотя я использую OR 1=1, но когда я установил его до LIMIT 1000000. Я не получаю ответа, а страница продолжает загружаться (потому что для выполнения запроса требуется столько времени).

Другими словами, он всегда показывает ошибку, но время выполнения запроса указывает, был ли запрос успешно выполнен или нет.

+0

Try 'AND' вместо' OR'. – Gumbo

+0

@Gumbo Я никогда не верну «true», потому что другие условия в запросе считаются всегда «ложными». –

+0

Затем найдите случай, когда все остальные условия также верны. – Gumbo

ответ

0

Я понял, как его автоматизировать. Я могу просто сделать это на основе SQL-инъекций, добавив условие вроде ИЛИ 1 = SLEEP (5) LIMIT 1 В этом случае он все равно будет печатать ошибку, но веб-сайт займет 5 секунд. [UPDATE] Я сумел применить вектор атаки в sqlmap с помощью следующей команды

Python sqlmap.py -u "http://testingzone.com/page.php?id=1 *" --suffix "LIMIT 1 -" --dbms "MySQL" --cookies "веб-сайт печенье"

И sqlmap удалось определить, что это время на основе SQL Injection уязвима URL