SQLMap — это один из самых популярных инструментов для автоматизированного тестирования на уязвимости SQL-инъекций. Он используется пентестерами, исследователями безопасности и даже системными администраторами для проверки безопасности своих систем.
Главное преимущество SQLMap — автоматизация. Вместо того, чтобы вручную подбирать полезные нагрузки, он сам определяет тип базы данных, подбирает правильные инъекции и даже может извлекать данные из уязвимой системы.
💡 Где используется:
-
При пентестах веб-приложений.
-
В баг-баунти программах.
-
Для аудита безопасности корпоративных сайтов.
-
При обучении этичному хакингу.
📍 Пример из реальной жизни:
Представь, у тебя есть форма поиска на сайте. Ты вводишь туда 1' OR '1'='1
— и вдруг сайт показывает больше данных, чем должен. SQLMap может автоматизировать этот процесс и вытащить из базы всё, что разрешит (или не разрешит 😏) уязвимость.
🔹 Популярные команды SQLMap
1. Проверка на уязвимость
sqlmap -u "http://example.com/product.php?id=1"
Что делает: проверяет переданный URL на наличие SQL-инъекций.
Когда применять: в самом начале теста, чтобы убедиться, что цель уязвима.
2. Вывод доступных баз данных
sqlmap -u "http://example.com/product.php?id=1" --dbs
Что делает: выводит список всех баз данных, к которым есть доступ.
Когда применять: когда нужно понять, какие базы можно исследовать.
3. Вывод таблиц из конкретной базы
sqlmap -u "http://example.com/product.php?id=1" -D my_database --tables
Что делает: показывает все таблицы выбранной базы.
Когда применять: когда уже известна база данных и нужно изучить её структуру.
4. Вывод содержимого таблицы
sqlmap -u "http://example.com/product.php?id=1" -D my_database -T users --dump
Что делает: извлекает все данные из указанной таблицы.
Когда применять: для получения реальных данных (в рамках теста).
5. Автоматический подбор методов
sqlmap -u "http://example.com/product.php" --data="id=1" --method=POST
Что делает: тестирует POST-запросы и автоматически подбирает подходящий способ атаки.
Когда применять: если уязвимость не в URL, а в передаваемых данных (форма логина, поиска и т.д.).
6. Определение учетных данных базы
sqlmap -u "http://example.com/product.php?id=1" --passwords
Что делает: пытается извлечь хэши паролей пользователей базы данных.
Когда применять: для теста безопасности учетных записей.
7. Обход WAF
sqlmap -u "http://example.com/product.php?id=1" --tamper=space2comment
Что делает: использует tamper-скрипт для обхода фильтрации.
Когда применять: если WAF (Web Application Firewall) блокирует стандартные запросы.
💡 Советы и лайфхаки
-
Используй
--random-agent
— чтобы подставлять случайный User-Agent и не палиться. -
Храни результаты в логах с помощью
--output-dir=logs
. -
Если цель использует HTTPS, укажи флаг
--force-ssl
. -
Для ускорения работы можно отключить медленные тесты:
--level=1 --risk=1
.
🚀 Попробуй на практике
Все эти команды можно отработать в безопасных условиях на стенде «SQLMap: с нуля» в Kraken Academy.
🔗 Перейти в модуль
📘 Понравилась статья?
Больше практики и реальных заданий — в Kraken Academy.
А чтобы точно ничего не пропустить — подпишись на наш Telegram-канал.