Я столкнулся с уязвимостью Blind SQL injection, которая основана на Boolean, но ответ, который я получаю с сервера, основан на времени. Другими словами, если условие является «ложным», веб-сайт возвращает оператор «error». Если условие «true», страница НЕ загружается.Сочетание логической и зависящей от времени SQL-инъекции в sqlmap
Например
возвращается "Ошибка Invalid ID"
возвращает ничего, и страница продолжает загрузку навсегда (тест I ed за 60 секунд без ответа, а также я не получил ошибку тайм-аута в браузере)
Я могу выполнить атаку вручную, но мне интересно узнать, как выполнить такую атаку в sqlmap.
sqlmap не смог определить, что он предназначен для инъекций, но он показывает несколько «ошибок таймаута запроса». Как я могу сказать sqlmap, что когда время запроса запроса означает, что условие истинно?
[UPDATE]
Я вроде начал формировать образ о том, почему это занимает так много времени, чтобы ответить ... Когда я добавляю LIMIT 1
для запроса я получаю сообщение об ошибке, хотя я использую OR 1=1
, но когда я установил его до LIMIT 1000000
. Я не получаю ответа, а страница продолжает загружаться (потому что для выполнения запроса требуется столько времени).
Другими словами, он всегда показывает ошибку, но время выполнения запроса указывает, был ли запрос успешно выполнен или нет.
Try 'AND' вместо' OR'. – Gumbo
@Gumbo Я никогда не верну «true», потому что другие условия в запросе считаются всегда «ложными». –
Затем найдите случай, когда все остальные условия также верны. – Gumbo