SleuthQL – это скрипт python3 для определения параметров и значений, содержащих синтаксис типа SQL.
После определения SleuthQL затем вставляет идентификаторы SQLMap (*) в каждый параметр, где были идентифицированы переменные SQL-esque.
SleuthQL стремится повысить способность оценщика обнаруживать точки внедрения SQL, автоматизируя некоторые анализы запросов, необходимые во время оценки веб-приложений.
SleuthQL – это скрипт Python 3 для поиска истории запросов Burp Suite для параметров и значений, которые соответствуют синтаксическому соответствию для языков баз данных, таких как SQL.
Он оценивает параметр или значение, исходя из того, соответствует ли оно регулярному выражению, связанному с запросами базы данных. SleuthQL может безошибочно сканировать json, xml, form-data и url-encoded данные.
Эти регулярные выражения включают имена баз данных, общие операнды, имена общих переменных и многое другое. Как только совпадение обнаружено, оно создаст список уязвимых параметров для каждой конечной точки и каждого метода, с которым была запрошена конечная точка.
После того, как этот список будет скомпилирован, он будет перебирать все запросы, соответствующие этой конечной точке и методу, добавляя пользовательский маркер инъекции (*) в точке каждого потенциально уязвимого параметра.
Затем он записывает этот запрос в каталог, соответствующий доменному имени. Затем вы можете передать каждый файл запроса в этот каталог в SQLmap для обработки следующей командой:
# find $ domainName -name "* .txt" -exec sqlmap -r {} -batch \;
Поддерживаемые типы запросов
SleuthQL требует экспорта истории прокси-сервера Burp.
Чтобы получить этот экспорт, просто перейдите на вкладку истории прокси-сервера, выделите каждый элемент и нажмите «Сохранить элементы».
Убедитесь, что каждый запрос сохраняется с использованием кодировки base64.
Когда SleuthQL сканирует файл истории прокси, за пределами обычных параметров URL, он сможет идентифицировать уязвимые параметры из следующих типов содержимого запроса:
- application/json
- application/x-www-form-urlencoded
- multipart/form-data
Что не делает SleuthQL?
В настоящее время существует несколько ограничений инструмента, таких как разбор вложенных параметров разных типов.
Например, были случаи, когда данные JSON POST отправляются в приложение со значениями параметров, которые кодируются с базой 64.
Это значение не может быть проанализировано SleuthQL и потребует экспертного внимания.
Более того, он не просматривает файлы cookie приложения для потенциальных точек впрыска.
Это связано с тем, что файлы cookie часто вмешиваются в состояние сеанса (и делают недействительным текущий сеанс) и имеют особенно большое количество ложных срабатываний, таких как идентификаторы CDN
В заключение, SleuthQL стремится обнаруживать потенциально уязвимые точки внедрения SQL в веб-приложениях, анализируя имена параметров и значения для потенциально опасных значений.
Использование его в тандеме с помощью инструмента, такого как SQLMap, может помочь увеличить регулярный аудит приложения и обеспечить полную глубину охвата.