Основы работы с sqlmap.

Документация и основные параметры

Использование:

Ссылка на GitHub - https://github.com/sqlmapproject/sqlmap/zipball/master

Синтаксис: python sqlmap.py [options]

Опции:

-h, --help          Выводит краткую помощь по программе
-hh                 Выводит полную справку по программе
--version           Выводит версию программы
-v VERBOSE          Уровень детализации: 0-6(по-умолчанию 1)

Цели:

Как минимум один из следующих вариантов должен присутствовать, чтобы определить цель

-d DIRECT           Прямое подключение к базе данных
-u URL, --url=URL   URL цели (например, "www.target.com/vuln.php?id=1")
-l LOGFILE          Вести логи от Burp или WebScarb proxy в файл
-m BULKFILE         Сканирование по списку целей, заданных в переданном файле
-r REQUESTFILE      Загрузить HTTP-запрос из файла
-g GOOGLEDORK       Использовать результат выдачи Google дорков как целевые url\'ы (site:, inurl:, intext:)
-c CONFIGFILE       Загрузить настройки из конфигурационного INI файла.

Запросы:

--data=DATA         Строка данных, которая будет передана POST запрсом
--param-del=PDEL    Обозначение, использующееся для разделения значений парматеров
--cookie=COOKIE     Заголовок http cookie
--cookie-del=CDEL   Обозначение, использующееся для разделения значиений cookie
--load-cookies=A..  Файл, содержащий cookies в формате Netscape/wget
--drop-set-cookie   Игнорировать заголовок Set-Cookie в ответе
--user-agent=AGENT  Заголовок HTTP User-Agent
--random-agent      Использовать случайный HTTP User-Agent заголовок
--host=HOST         HTTP Host заголовок
--referer=REFERER   HTTP Referer заголовок
--headers=HEADERS   Extra заголовки (т.е. "Accept-Language: fr\nETag: 123")
--auth-type=ATYPE   Тип HTTP аутентификации (Basic, Digest or NTLM)
--auth-cred=ACRED   Данные HTTP аутентификации (name:password)
--auth-private=A..  Файл приватного PEM ключа для HTTP аутентификации
--proxy=PROXY       HTTP прокси для подключения к целевому URL
--proxy-cred=PCRED  Данные для аутентификации через HTTP прокси (name:password)
--ignore-proxy      Игнорировать системные настройки прокси
--tor               Использовать TOR для соединения
--tor-port=TORPORT  Указать порт TOR proxy, отличающийся от дефолтного
--tor-type=TORTYPE  Указать тип TOR proxy (HTTP (умолч.), SOCKS4 или SOCKS5)
--check-tor         Проверить, используется ли TOR должным образом
--delay=DELAY       Задержка в секундах между каждым HTTP запросом
--timeout=TIMEOUT   Время ожидания в секундах до сброса соединения (30 дефолтно)
--retries=RETRIES   Количество повторов при такймауте (3 дефолтно)
--randomize=RPARAM  Случайное значение для заданных параметров
--safe-url=SAFURL   URL адрес, часто посещаемый в процессе тестирования
--safe-freq=SAFREQ  Тестовыые запросы между двумя обращениями к заданному safe URL
--skip-urlencode    Пропустить кодирование данных полезной нагрузки
--force-ssl         Принудительно использовать SSL/https
--hpp               Использовать загрязнение параметров запроса HPP
--eval=EVALCODE     Выполнить Python код перед запросом (т.е. "import hashlib;id2=hashlib.md5(id).hexdigest()")

HPP about link

Оптимизация:

Следующие опции могут быть использованы для улучшения производительности sqlmap

-o                  Задействовать все виды оптимизации
--predict-output    Предсказывать общие исходящие заголовки
--keep-alive        Использовать постоянное HTTP(S) соединение
--null-connection   Получить размер страницы без тела http ответа
--threads=THREADS   Максимальное количество одновременных http(s) запросов (дефолтно - 1)

Инъекции:

Эти параметры могут быть использованы, чтобы указать, какие параметры использовать для проверки полезной нагрузки, инъекций и ненадёжных скриптов.

-p TESTPARAMETER    Тестируемые параметры
--skip=SKIP         Пропустить тест для заданных параметров
--dbms=DBMS         Принудительно(?) использовать фоновые СУБД
--dbms-cred=DBMS..  Данные для аутентификации к СУБД (user:password)
--os=OS             Использовать серверных СУБД ОС для заданных значений
--invalid-bignum    Использовать большие числа для определения невалидных значений
--invalid-logical   Использовать логические операции для определения невалидных значений
--invalid-string    Использовать случайные строки для определения невалидных значений
--no-cast           Отключить полезную нагрузку
--no-escape         Отключить экранирование строк
--prefix=PREFIX     Полезная нагрузка в строке преффикса
--suffix=SUFFIX     Полезная нагрузка в строке суффикса
--tamper=TAMPER     Использовать скрипт для подделки данных инъекции

Обнаружение:

Эти параметры могут быть использованы для настройки уровней обнаружения

--level=LEVEL      Уровень тестирования (1-5, дефолтно 1)
--risk=RISK        Риск тестирования (0-3, дефолтно 1)
--string=STRING    Строка для соответствия, если запрос вернет TRUE
--not-string=NOT.. Строка для соответствия, если запрос вернет FALSE
--regexp=REGEXP    Регулярка для совпадения, когда запрос TRUE
--code=CODE        HTTP код, когда запрос TRUE
--text-only        Сравнение страниц на основе текстового содержимого
--titles           Сравнение страниц на основе их заголовков

Методы:

Эти параметры могут быть использованы для настройки методов тестирования конкретной инъекции SQL

--technique=TECH    Используемый метод SQL инъекции (дефолтно "BEUSTQ")
--time-sec=TIMESEC  Задержка ответа БД в секундах (дефолтно 5)
--union-cols=UCOLS  Диапазон колонок для теста с UNION запросом SQL инъекции
--union-char=UCHAR  Обознанчение для использования брутфорса количества колонок
--union-from=UFROM  Таблица для использования в части FROM запроса UNION
--dns-domain=DNS..  Доменное имя, используемое для атаки DNS эксфильтрации
--second-order=S..  URL итоговой страницы найденной для second-order запроса

Отпечатки:

-f, --fingerprint   Получение расширенных данных о версии СУБД по отпечатку

Перечисление:

Эти параметры могут быть использованы для перечисления серверных баз данных систем управления информации, структур и данных, содержащихся в таблицах. Более того, вы можете запустить свои собственные SQL запросы

-a, --all           Получить всё
-b, --banner        Получить текстовый банер СУБД (фициальное название, номер версии)
--current-user      Получить текущего пользователя СУБД
--current-db        Получить используемую базу данных
--hostname          Получить имя хоста сервера СУБД
--is-dba            Определить под Админом мы или нет
--users             Перечислить пользователей СУБД
--passwords         Перечислить парольные хэши пользователей СУБД
--privileges        Перечислить привелегии
--roles             Перечислить роли пользователей
--dbs               Перечислить базы данных в СУБД
--tables            Перечислить таблицы текущей БД
--columns           Перечислить колонки текцщей БД
--schema            Перечислить схемы СУБД
--count             Получить кол-во записей в таблицах
--dump              Дамп записей  текущей таблицы БД
--dump-all          Дамп всех таблиц из баз данных в СУБД
--search            Поиск колонок, таблиц и/или имен БД
--comments          Получить комментарии СУБД
-D DB               База данных в СУБД для перечисления
-T TBL              Таблица СУБД для перечисления
-C COL              Колонока таблицы СУБД для перечисления
-X EXCLUDECOL       Не перечислять последующие колонки
-U USER             Пользователь СУБД для перечесления
--exclude-sysdbs    Исключить системные базы данных СУБД при перечислении таблиц
--where=DUMPWHERE   Использовать WHERE, если таблица скрыта
--start=LIMITSTART  Извлекать первую запись результата запроса
--stop=LIMITSTOP    Извлекать последнюю запись результата запроса
--first=FIRSTCHAR   Извлекать первый символ слова в результате запроса
--last=LASTCHAR     Извлекать последний символ слова в результате запроса
--sql-query=QUERY   SQL запросы, которые должны быть выполнены
--sql-shell         Вызов интерактивного SQL shell\'а
--sql-file=SQLFILE  Выполнить SQL запросы из файла(ов)

Брутфорс:

Параметры для запуска Brute Force
--common-tables     Проверить наличие общих таблиц
--common-columns    Проверить наличие общих столбцов

Функции, определённые пользователем:

Эти параметры могут быть использованы для создания пользовательских функций

--udf-inject        Инжектировать SQL, определенные пользователем
--shared-lib=SHLIB  Локальный путь общей библиотеки

Доступ к файловой системе:

Эти параметры могут быть использованы для доступа к управлению серверной базой данных при доступе к ФС

--file-read=RFILE   Прочитать файл из ФС серверной СУБД
--file-write=WFILE  Записать файл в ФС
--file-dest=DFILE   Абсолютный путь для записи файла в серверной СУБД

Доступ к операционной системе:

Эти параметры могут быть использованы для доступа к управлению серверной базой данных при доступе к ОС сервера.

--os-cmd=OSCMD      Выполнить команду в командной оболочке ОС
--os-shell          Вызов интерактивной оболочки ОС
--os-pwn            Вызов собственного интерпритатора командной оболочки(out-of-band shell), meterpeter или VNC
--os-smbrelay       Быстрый вызов OBB, meterpeter или VNC
--os-bof            Эксплуатация переполнения буфера
--priv-esc          Повышение привелегий пользовательских процессов, работающих с БД
--msf-path=MSFPATH  Локальный путь, установки Metasploit Framework
--tmp-path=TMPPATH  Абсолютный путь к директории временных файлов

Доступ к реестру Windows:

Эти параметры могут быть использованы для доступа к реестру Windows серверной ОС

--reg-read          Прочитать значение ключа реестра
--reg-add           Записать значение ключ реестра
--reg-del           Удалить значение ключа реестра
--reg-key=REGKEY    Ключ реестра
--reg-value=REGVAL  Значение ключа реестра
--reg-data=REGDATA  Данные значения ключа реестра
--reg-type=REGTYPE  Тип значения ключа реестра

Общее:

Эти параметры могут быть использованы для установки некоторых общих параметров

-s SESSIONFILE      Згрузить сохраненную сессию из файла (.sqlite)
-t TRAFFICFILE      Записывать весь HTTPтраффик в файл
--batch             Не запрашивать ввода пользователя, действия по умолчанию
--charset=CHARSET   Задать кодировку для извлекаемых данных
--crawl=CRAWLDEPTH  Исследовать веб сайт начиная с заданного URL
--csv-del=CSVDEL    Разделять символы в выводе CSV (дефолтно ",")
--dump-format=DU..  Формат дампа данных (CSV (дефолтно), HTML или SQLITE)
--eta               Показывать расчетное время для каждого вывода
--flush-session     Игнорировать файлы сеансов текущей цели
--forms             Распарсить и тестировать формы на заданном URL
--fresh-queries     Игнорировать результаты запросов, хранящихся в файле сессии
--hex               Использовать функции хеширования СУБД для извлекаемых данных
--output-dir=ODIR   Кастомный пусть для исходящих данных
--parse-errors      Парсить и выводить ошибки
--pivot-column=P..  Имя основного (ключевого) столбца
--save              Сохранить настройки в конфигурационный INI файл
--scope=SCOPE       Регулярка для фильтра целей из предоставленных прокси в файле
--test-filter=TE..  Выбрать тесты на основании полезной нагрузки или заголовков (например, ROW)
--update            Обновить SQLmap

Дополнительно:

-z MNEMONICS        Использовать короткие мнемоники (типа "flu,bat,ban,tec=EU")
--alert=ALERT       Запуск консольных команд, когда будетнайдена SQL уязвимость
--answers=ANSWERS   Задать ответы на вопросы (например, "quit=N,follow=N")
--beep              Звуковой сигнал при нахождении уязвимости
--check-waf         Эвристическая проверка WAF/IPS/IDS защиты
--cleanup           Очистка СУБД при помощи SQLmap UDF и таблиц
--dependencies      Проверка отсутствующих зависимостей SQLmap
--disable-coloring  Отключить раскраску консоли
--gpage=GOOGLEPAGE  Указать номер страницы гугла, с которой начнется поиск по доркам
--identify-waf      Провести тестирование для WAF/IPS/IDS защиты
--mobile            Имитировать заголовок User-Agent смартфона из HTTP
--page-rank         Выводить рейтинг страниц для результатов Google дорков
--purge-output      Безопасное удаление всго содержимого из каталога output
--smart             Провести тестирование только при положительном эврестическом анализе
--wizard            Простой интерфейс для начинающих пользователей с запросами для всех действий