Следующая версия | Предыдущая версия |
network:sqlmap [2016/09/10 17:13] – создано mirocow | network:sqlmap [2023/11/30 02:27] (текущий) – 192.168.1.159 |
---|
| {{tag>security test sql injection" scanner mysql}} |
| |
====== sqlmap - Сканер наличия SQL инекций ====== | ====== sqlmap - Сканер наличия SQL инекций ====== |
| |
| ===== Скачать ===== |
| |
| * https://github.com/sqlmapproject/sqlmap |
| ===== Пример использования ===== |
| |
| <code bash> |
| $ python sqlmap.py -u "http://mysite.com/?page=driving-directions&id=18133" --batch --banner --dbms mysql |
| </code> |
| |
| ===== Опции ===== |
| |
| |
| <code bash> |
| $ python sqlmap [опции] |
| |
| Опции: |
| -h, --help Показать базовую справку и выйте |
| -hh Показать продвинутую справку и выйти |
| --version Показать номер версии программы и выйти |
| -v VERBOSE Уровень вербальности: 0-6 (по умолчанию 1) |
| |
| Цель: |
| По крайней мере одна из этих опций должна быть указана, чтобы задать цель(и) |
| |
| -d DIRECT Строка подключения для прямого соединения с базой данных |
| -u URL, --url=URL Целевой URL (например, "http://www.site.com/vuln.php?id=1") |
| -l LOGFILE Парсить цель(и) из файлов логов Burp или WebScarab |
| -x SITEMAPURL Парсить цель(и) из удалённого файла sitemap(.xml) |
| -m BULKFILE Сканировать множество целей, заданных в текстовом файле |
| -r REQUESTFILE Загрузить HTTP запросы из файла |
| -g GOOGLEDORK Обработать результаты дорков Google как целевых URL |
| -c CONFIGFILE Загрузить опции из конфигурационного файла INI |
| |
| Запросы: |
| Эти опции могут использоваться для определения как подключиться к целевому URL |
| |
| --method=МЕТОД Принудительно использовать заданный HTTP метод (например, PUT) |
| --data=ДАННЫЕ Строка данных для отправки через POST |
| --param-del=РАЗД_ПАРfv Символ, используемый для разделения величин параметров |
| --cookie=КУКИ Значение заголовка HTTP куки HTTP |
| --cookie-del=РАЗДЕЛИТЕЛЬ_КУКИ Символ, используемый для разделения величин куки |
| --load-cookies=ФАЙЛ_ДЛЯ_ЗАГРУЗКИ Файл, содержащий куки в формате Netscape/wget |
| --drop-set-cookie Игнорировать заголовок Set-Cookie из ответа |
| --user-agent=AGENT Значение заголовка HTTP User-Agent |
| --random-agent Использовать случайно выбранное значение заголовка HTTP User-Agent |
| --host=ХОСТ Значение заголовка хоста HTTP |
| --referer=РЕФЕРЕР Значение заголовка HTTP Referer |
| -H ЗАГОЛОВОК, --header Дополнительный заголовок (к примеру, "X-Forwarded-For: 127.0.0.1") |
| --headers=ЗАГОЛОВКИ Дополнительные заголовки (к примеру, "Accept-Language: fr\nETag: 123") |
| --auth-type=ТИП_АУТ HTTP тип аутентификации (Basic, Digest, NTLM или PKI) |
| --auth-cred=ДАННЫЕ_АУТ учётные данные HTTP аутентификации (имя:пароль) |
| --auth-file=ФАЙЛ_АУТ файл HTTP аутентификации PEM сертификат/частный ключ |
| --ignore-401 Игнорировать ошибку HTTP 401 (Unauthorized) (Неавторизован) |
| --proxy=ПРОКСИ Использовать прокси для подключения к целевому URL |
| --proxy-cred=УЧЁТКА_ПРОКСИ Учётные данные аутентификации прокси (имя:пароль) |
| --proxy-file=ФАЙЛ_ПРОКСИ Загрузить список прокси из файла |
| --ignore-proxy Игнорировать дефолтные системные настройки прокси |
| --tor Использовать анонимную сеть Tor |
| --tor-port=TORPORT Установить порт прокси Tor отличный от дефолтного |
| --tor-type=TORTYPE Установить тип прокси Tor (HTTP (по умолчанию), SOCKS4 или SOCKS5) |
| --check-tor Проверить, используется ли Tor должным образом |
| --delay=ЗАДЕРЖКА Задержка в секундах между каждым HTTP запросом |
| --timeout=ТАЙМАУТ Секунды для ожидания перед таймаутом соединения (по умолчанию 30) |
| --retries=ПОПЫТКИ Попытки при таймаутах соединения (по умолчанию 3) |
| --randomize=ПАРАМЕТРЫ Случайно менять значения данного параметра(ов) |
| --safe-url=БЕЗОПАСНЫЙ_EURL URL адрес для частого посещения во время тестирования |
| --safe-post=POST Данные POST для отправки на безопасный URL |
| --safe-req=БЕЗОПАСНЫЙ_ФАЙЛ Load safe HTTP request from a file |
| --safe-freq=КОЛИЧЕСТВО Тестовые запросы между двумя визитами на заданный безопасный URL |
| --skip-urlencode Пропустить URL кодирование данных для запросов |
| --csrf-token=CSR.. Параметр используемый для удержания токена anti-CSRF |
| --csrf-url=CSRFURL URL адрес для посещения для извлечения токена anti-CSRF |
| --force-ssl Принудительное использование SSL/HTTPS |
| --hpp Использовать метод загрязнения параметра HTTP |
| --eval=EVALCODE Выполнить данные код Python перед запросом (например, |
| "import hashlib;id2=hashlib.md5(id).hexdigest()") |
| |
| Оптимизация: |
| Эти опции могут использовать для оптимизации производительности sqlmap |
| |
| -o Отключить все переключатели оптимизации |
| --predict-output Прогнозировать общий вывод запросов |
| --keep-alive Использовать постоянные соединения HTTP(s) |
| --null-connection Получить длину страницу без фактического тела ответа HTTP |
| --threads=ПОТОКИ Максимальное количество одновременных HTTP(s) запросов (по умолчанию 1) |
| |
| Инъекция: |
| Эти опции могут использоваться для определения, какой параметр тестировать, |
| обеспечивать пользовательскую инъекционную нагрузку и дополнительные скрипты обфускации |
| |
| -p TESTPARAMETER Тестируемый параметр(ы) |
| --skip=SKIP Пропустить тестирования данного параметра(ов) |
| --skip-static Пропустить тестирование параметров, которые не кажутся динамическими |
| --dbms=DBMS Принудительно указать СУБД |
| --dbms-cred=DBMS.. Данные аутентификации СУБД (пользователь:пароль) |
| --os=OS Принудительно указать операционную систему СУБД |
| --invalid-bignum Использовать большие числа для недействительных значений |
| --invalid-logical Использовать логические операции для недействительных значений |
| --invalid-string Использовать случайные строки для недействительных значений |
| --no-cast Отключить механизм отбора полезной нагрузки |
| --no-escape Отключить механизм экранирования строк |
| --prefix=PREFIX Предваряющая строка инъекционного запроса |
| --suffix=SUFFIX Завершающая строка инъекционного запроса |
| --tamper=TAMPER Использовать данный скрипт(ы) для обфускации инъекционных данных |
| |
| Выявление: |
| Эти опции можно использовать для настройки фазы выявления |
| |
| --level=УРОВЕНЬ Уровень выполнения тестирования (1-5, по умолчанию 1) |
| --risk=РИСК Риск выполняемого тестирования (1-3, по умолчанию 1) |
| --string=СТРОКА Строка, когда запрос выполнен в True (Истина) |
| --not-string=НЕ_ИСТИНА Строка, когда запрос выполнен в False (Ложь) |
| --regexp=РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ Регулярное выражение, когда запрос выполнен в True (Истина) |
| --code=КОД HTTP код, когда запрос выполнен в True (Истина) |
| --text-only Сравнить страницы основываясь только на текстовом содержимом |
| --titles Сравнить страницы основываясь только на их заголовках |
| |
| Техники: |
| Эти опции можно использовать для поднастройки тестирования отдельных техник SQL инъекции |
| |
| --technique=ТЕХНИКА Техники SQL инъекций для использования (по умолчанию "BEUSTQ") |
| --time-sec=TIMESEC Секунды для задержки ответа СУБД (по умолчанию 5) |
| --union-cols=UCOLS Диапазон колонок для тестирования с запросами UNION SQL инъекций |
| --union-char=UCHAR Символ для использования при брутфорсинге количества колонок |
| --union-from=UFROM Таблица для использования в FROM части UNION запроса SQL инъекции |
| --dns-domain=ДОМЕН Доменное имя, используемое для эксфильтрационной атаки DNS |
| --second-order=СТРОКА В результате по URL ищется ответ второго порядка |
| |
| Отпечатки: |
| -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 БД БД СУБД для перечисления |
| -T ТБЛ Таблица(ы) БД СУБД для перечисления |
| -C КОЛ Колонка(и) таблицы БД СУБД для перечисления |
| -X ПРОПУСТИТЬКОЛ Колонка(и) БД СУБД для не перечисления |
| -U ПОЛЬЗОВАТЕЛЬ Пользователи СУБД для перечисления |
| --exclude-sysdbs Пробустить системные БД СУБД при перечислении таблиц |
| --where=DUMPWHERE Использовать условие WHERE при дампинге таблиц |
| --start=LIMITSTART Первая выходная запись запроса для получения |
| --stop=LIMITSTOP Последняя выходная запись запроса для получения |
| --first=FIRSTCHAR Первый символ выходного слова запроса для получения |
| --last=LASTCHAR Последний символ выходного слова запроса для получения |
| --sql-query=QUERY SQL выражение для исполнения |
| --sql-shell Приглашение интерактивного SQL шелла |
| --sql-file=SQLFILE Выполнить SQL выражение из данного файла(ов) |
| |
| Брут-форс: |
| Эти опции могут использоваться для записи проверок брут-форсом |
| |
| --common-tables Проверить наличие распространённых таблиц |
| --common-columns Проверить наличие распространённых колонок |
| |
| Инъекция заданных пользователем функций: |
| Эти опции могут быть использованы для создания определённых пользователем функций |
| |
| --udf-inject Вставка предопределённых пользователем функций |
| --shared-lib=SHLIB Локальный путь до общей библиотеки |
| |
| Доступ к файловой системе: |
| Эти опции могут быть использованы для доступа к файловой системе СУБД |
| |
| --file-read=RFILE Прочитать файл из файловой системы СУБД |
| --file-write=WFILE Записать локальный файл в файловую систему СУБД |
| --file-dest=DFILE Абсолютный путь для записи файла в СУБД |
| |
| Доступ к оперативной системе: |
| Эти опции могут быть использованы для получения доступа к ОС СУБД |
| |
| --os-cmd=OSCMD Выполнить команду ОС |
| --os-shell Приглашение интерактивного шелла ОС |
| --os-pwn Прриглашение для внеполосного шелла, Meterpreter или VNC |
| --os-smbrelay Однокликовое приглашение для внеполосного шелла, Meterpreter или VNC |
| --os-bof Эксплуатация переполнения буфера хранимой процедуры |
| --priv-esc Повышение пользовательских привилегий процесса БД |
| --msf-path=MSFPATH Локальный путь где установлен Metasploit Framework |
| --tmp-path=TMPPATH Удалённый абсолютный путь директории временных файлов |
| |
| Доступ к регистру Windows: |
| Эти опции могут использоваться к доступу к регистру Windows СУБД |
| |
| --reg-read Прочитать значение ключа регистра Windows |
| --reg-add Записать значение ключа регистра Windows |
| --reg-del Удалить значение ключа регистра Windows |
| --reg-key=REGKEY Ключ регистра Windows |
| --reg-value=REGVAL Значение ключа регистра Windows |
| --reg-data=REGDATA Данные значения ключа регистра Windows |
| --reg-type=REGTYPE Тип значения ключа регистра Windows |
| |
| Общие: |
| Эти опции могут быть использованы для установки общих рабочих параметров |
| |
| -s SESSIONFILE Загрузить сессию из сохранённого файла (.sqlite) |
| -t TRAFFICFILE Записать весь HTTP трафик в текстовый файл |
| --batch Никогда не спрашивать пользовательского ввода, использовать поведение по умолчанию |
| --charset=CHARSET Принудительная кодировка символов, используемых для получения данных |
| --crawl=CRAWLDEPTH Ползать по веб-сайту начиная с заданного URL |
| --crawl-exclude=РЕГВЫРАЖЕНИЕ Регулярное выражение для исключения страниц для ползания (например, "logout") |
| --csv-del=CSVDEL Символ разделителя, используемый в выводе CSV (по умолчанию ",") |
| --dump-format=ДАМПФОРМАТ Формат сдампленных данных (CSV (по умолчанию), HTML или SQLITE) |
| --eta Отобразить для каждого вывода приблизительное время прибытия |
| --flush-session Стереть сессионные файлы для текущей цели |
| --forms Парсить и тестировать формы на целевой URL |
| --fresh-queries Игнорировать результаты запросов, сохранённые в сессионном файле |
| --hex Использовать шестнадцатеричную функцию(ии) СУБД для получения данных |
| --output-dir=OUT.. Пользовательский путь директории вывода |
| --parse-errors Парсить и отображать сообщения ошибок СУБД из ответов |
| --pivot-column=P.. Имя стержневой колонки |
| --save=SAVECONFIG Сохранить опции в конфигурационный INI файл |
| --scope=SCOPE Регулярное выражение для фильтрации целей из лога proxy |
| --test-filter=TE.. Выбрать тесты по полезной нагрузке и/или названиям (например, ROW) |
| --test-skip=TEST.. Пропустить тесты по полезной нагрузке и/или названиям (например, BENCHMARK) |
| --update Обновить sqlmap |
| |
| Разное: |
| -z MNEMONICS Использовать короткие мнемоники (например, "flu,bat,ban,tec=EU") |
| --alert=ALERT Запустить команду(ы) ОС, когда найдена SQL инъекция |
| --answers=ANSWERS Установить ответ на вопрос (например "quit=N,follow=N") |
| --beep Сигнал на вопрос и/или когда найдена SQL инъекция |
| --cleanup Очистить СУБД от специфичных для sqlmap пользовательских функций и таблиц |
| --dependencies Проверить на отсутствующие (неосновные) зависимости sqlmap |
| --disable-coloring Отключить раскрашивание вывода в консоли |
| --gpage=GOOGLEPAGE Использовать результаты дорка Google с указанного номера страницы |
| --identify-waf Провести тщательное тестирование на WAF/IPS/IDS защиту |
| --skip-waf Пропустить эвристическое обнаружение WAF/IPS/IDS защиты |
| --mobile Имитировать смартфон через заголовок HTTP User-Agent |
| --offline Работать в оффлайн режиме (использовать только данные сессии) |
| --page-rank Показать page rank (PR) для результатов дорка Google |
| --purge-output Безопасно удалить всё содержимое из директории вывода |
| --smart Провести тщательные тесты только если эвристика дала положительные результаты |
| --sqlmap-shell Запрос интерактивного шелла sqlmap |
| --wizard Простой интерфейс мастера для начинающих пользователей |
| </code> |
| |
| ===== Документация / FAQ ===== |
| |
| * https://github.com/sqlmapproject/sqlmap/wiki/FAQ |
| |
| ===== Видео ===== |
| |
| * https://www.youtube.com/watch?v=-7ez8J6-nXE |
| * https://www.youtube.com/watch?v=EnXTSFTsqc4 |