ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

01.07.2025, 00:03
|
|
Новичок
Регистрация: 14.08.2015
Сообщений: 0
Провел на форуме: 0
Репутация:
0
|
|
От основ до обхода WAF и защиты. Актуальный гайд на 2025 год.
Sqlmap — это не просто инструмент. Это швейцарский нож пентестера, который превращает рутинный поиск SQL-инъекций в автоматизированный процесс, вплоть до полного захвата сервера. Старые гайды по нему хороши, но мир не стоит на месте: везде стоят WAF, технологии меняются. Поэтому мы собрали здесь всё воедино: классическую базу, современные техники обхода и актуальные советы по защите. Всё в стиле античат — по делу и без воды.
Что умеет sqlmap? Ключевые возможности в 2025 году
Если коротко — sqlmap делает почти всё. Он сам определяет тип уязвимости, подбирает нужный эксплойт и вытаскивает данные. Вот его основной арсенал, актуальный для последних версий: - Поддержка СУБД: Практически всё, что можно встретить в проде. От классики вроде MySQL, PostgreSQL, Oracle, MSSQL до SQLite, MariaDB, ClickHouse и даже экзотики вроде SAP MaxDB. Полный список всегда есть на официальном сайте.
- Все 6 техник инъекций: Boolean-blind, Time-blind, Error-based, UNION, Stacked queries, Out-of-band. Инструмент сам определит, какая из них сработает лучше всего.
- Прямое подключение к БД: Если у вас уже есть логин и пароль от базы данных, sqlmap может подключиться напрямую, без всяких инъекций, для дальнейшей работы.
- Перечисление (Enumeration): Может вытащить информацию о пользователях, хэшах паролей, ролях, привилегиях, базах данных, таблицах и колонках.
- Автоматический брутфорс хэшей: Находит хэши паролей и тут же пытается вскрыть их по встроенным словарям.
- Дампинг данных: Позволяет скачать всю таблицу, отдельные столбцы или даже отфильтровать данные по вашему запросу.
- Работа с файловой системой: Может читать и записывать файлы на сервер, если у пользователя БД есть на это права (актуально для MySQL, PostgreSQL, MSSQL).
- Выполнение команд на сервере (
): При определенных условиях можно получить полноценную командную строку на целевом сервере.
- Создание Out-of-band каналов: Позволяет установить TCP-сессию между жертвой и атакующим, например, для получения шелла через Meterpreter.
- Эскалация привилегий: Интегрируется с Metasploit для повышения привилегий в системе.
Как это работает под капотом: техники инъекций
Sqlmap не просто бездумно шлет запросы. Он действует последовательно, перебирая техники от самых шумных и быстрых к самым медленным и незаметным. - Error-based (На основе ошибок): Самый быстрый способ. Sqlmap пытается вызвать ошибку SQL (
) и парсит ее текст, чтобы извлечь данные. Сработает, только если сайт выводит отладочную информацию, что сегодня уже редкость.
- UNION-based (На основе UNION): Классика. Инструмент подбирает правильное количество столбцов в запросе и объединяет его со своим через
. Если повезет, данные из базы выводятся прямо на странице.
- Boolean-based blind («Слепая» на основе логики): Когда сайт не показывает ошибок и данных, sqlmap начинает играть в игру «горячо-холодно». Он добавляет к запросу условия вроде
и
и смотрит, меняется ли страница. Так, по одному байту, он восстанавливает нужную информацию.
- Time-based blind («Слепая» на основе времени): Самый медленный, но самый надежный метод. Если ничего другое не помогло, sqlmap добавляет в запрос команду задержки (
). Если ответ сервера приходит с задержкой, значит, условие выполнилось. Это долго, но почти всегда работает.
- Stacked queries (Пакетные запросы): Мощнейшая техника, если поддерживается СУБД. Позволяет выполнить несколько запросов за раз, разделив их точкой с запятой (
). Именно так можно не только читать, но и изменять данные или выполнять системные команды.
- Out-of-band (Внеполосные): Самая продвинутая техника. Заставляет базу данных саму отправить данные на сервер атакующего (например, через DNS-запрос). Требует специфических настроек и прав.
Пробиваемся через WAF: Tamper-скрипты и хитрости
Сегодня почти любой серьезный проект защищен Web Application Firewall (WAF). Прямые атаки sqlmap он легко отобьет. Но и на этот случай у нас есть решение — tamper-скрипты. Это небольшие скрипты, которые на лету изменяют ваши запросы, чтобы обмануть файрвол.
Они умеют: - Кодировать полезную нагрузку (Base64, HEX).
- Заменять пробелы на комментарии (
).
- Менять регистр символов (
).
- Вставлять "мусор" и многое другое. Их больше 50 штук!
Пример команды для обхода популярных WAF (вроде Cloudflare, ModSecurity):
Bash:
Код:
sqlmap -u
"http://site/?id=1"
--tamper
=
space2comment,randomcase,base64encode --level
=
5
--risk
=
3
--random-agent
Наши советы по обходу:- Начинайте с простого:
или
— классика.
- Комбинируйте: Не бойтесь создавать цепочки из нескольких скриптов.
- Маскируйтесь: Всегда используйте
, чтобы не палиться по стандартному User-Agent от sqlmap.
- Будьте терпеливы: Подбор рабочего tamper-скрипта — это итеративный процесс. Что-то заблокировали? Пробуйте другой.
- Используйте прокси: Для сокрытия своего IP и обхода блокировок можно завернуть трафик sqlmap через TOR или цепочку прокси с помощью
.
Важнейшие параметры:
и
Многие новички копируют команды, не понимая этих ключей. А это критически важно. - (от 1 до 5): Глубина проверки.
- (по умолчанию): Проверяются только GET и POST параметры.
- : Добавляется проверка Cookie.
- : Добавляется User-Agent и Referer.
- : Проверяется абсолютно всё. Начинайте с
, чтобы ничего не упустить.
- (от 1 до 3): Степень риска.
- (по умолчанию): Только безобидные запросы.
- : Добавляются "тяжелые" time-based запросы.
- : Добавляются запросы, которые могут изменять данные (например,
в
).
Золотое правило:
используйте с большой осторожностью! На слабом сервере тяжелые запросы могут вызвать отказ в обслуживании (DoS). Неприятно, правда?
Закон и этика: это не игрушки
Запомните раз и навсегда:
— это инструмент для авторизованного тестирования на проникновение. Его использование на чужих ресурсах без письменного разрешения владельца — это уголовное преступление (в РФ — ст. 272, 273 УК РФ).
Последствия могут быть серьезными: - Уголовная и гражданская ответственность.
- Блокировка вашего IP-адреса навсегда.
- Проблемы с участием в программах Bug Bounty и карьерой в ИБ.
Если вы серьезно настроены превратить эти навыки в профессию, важно понимать весь путь. Начать можно с подробного руководства на форуме, которое поможет сориентироваться: Руководство для начинающего пентестера: как войти в профессию с нуля.Используйте инструмент только если у вас есть официальный договор на пентест или вы действуете в рамках публичной политики Bug Bounty. В остальных случаях — тренируйтесь на специально созданных для этого лабораториях (например, DVWA, bWAPP).
Как начать: пошаговый план
Прежде чем мы перейдем к конкретным командам, полезно понимать, как этот инструмент вписывается в общую картину. Если вы хотите лучше разобраться в том, что такое пентест и чем он отличается от работы Red Team, на форуме есть отличный обзорный материал: Всё о Пентесте и Red Team для новичков в новых реалиях.
Шаг 1: Поиск цели (для учебных целей!)
Классические Google Dorks всё ещё работают, но в основном на старых сайтах или в рамках CTF:
Код:
Код:
inurl:.php?id=
inurl:product.php?item_id=
inurl:article.php?cat_id=
Сегодня большинство таких URL уже пропатчены. Но для понимания механики это отличный старт.
Шаг 2: Быстрая ручная проверка
Простейший тест — добавить кавычку (
) в конец параметра URL:
Код:
http://test-site.com/product.php?id=123'
Если в ответ прилетела ошибка SQL — это хороший знак. Если нет — это еще ничего не значит! Уязвимость может быть слепой, и тут-то нам и нужен sqlmap.
Шаг 3: Эксплуатация с помощью sqlmap - Простая проверка и получение списка БД
Bash:
Код:
sqlmap -u
"http://test-site.com/product.php?id=123"
--dbs
- Получение таблиц из конкретной БД
Bash:
Код:
sqlmap -u
"..."
-D target_db --tables
- Получение столбцов из таблицы
Bash:
Код:
sqlmap -u
"..."
-D target_db -T
users
--columns
- Дампинг данных из столбцов
Bash:
Код:
sqlmap -u
"..."
-D target_db -T
users
-C username,password --dump
А если сайт требует логин?
В 99% случаев интересные уязвимости находятся за формой входа. Чтобы
работал в авторизованной зоне, ему нужно передать вашу сессионную cookie. - Залогиньтесь на сайте через браузер.
- Откройте инструменты разработчика (F12) -> Application/Storage -> Cookies.
- Скопируйте значение вашей сессионной cookie (например,
Код:
PHPSESSID=a1b2c3d4e5f6
).
- Добавьте ее в команду:
Bash:
Код:
sqlmap -u
"http://site.com/profile.php?id=1"
--cookie
=
"PHPSESSID=a1b2c3d4e5f6"
--dbs
Еще удобнее — перехватить запрос в Burp Suite, сохранить его в файл
и скормить sqlmap:
Код:
sqlmap -r request.txt
.
А что насчет API и JSON?
Да,
умеет и это. Если приложение общается через JSON, укажите место для инъекции звездочкой
:
Bash:
Код:
sqlmap -u
"http://api.site.com/v1/user"
--method
=
POST --data
=
'{"id": 1, "role": "user"}'
--headers
=
"Content-Type: application/json"
-p
"id"
Или просто укажите, какой параметр проверять, с помощью флага
.
Как защититься? Советы для разработчиков
Атаковать весело, но важно уметь и строить крепости. Вот главные правила защиты от SQL-инъекций: - Параметризованные запросы (Prepared Statements): Это золотой стандарт и самый надежный метод. Данные передаются в базу отдельно от самого SQL-запроса, и СУБД просто не может их исполнить. Используйте их всегда. ORM (Object-Relational Mapping) в современных фреймворках делают это по умолчанию.
- Принцип наименьших привилегий: Пользователь БД, от имени которого ваше веб-приложение работает с базой, должен иметь минимально необходимые права. Только
,
,
для своих таблиц. Никаких
,
или прав администратора (
).
- Хорошо настроенный WAF: Не просто включить "для галочки". WAF должен работать в режиме блокировки, а его правила — регулярно обновляться.
- Валидация и фильтрация входных данных: Проверяйте все, что приходит от пользователя. Если ожидается число — убедитесь, что это число. Если email — проверьте его формат регулярным выражением.
- Отключение вывода ошибок: На продакшн-сервере пользователи никогда не должны видеть отладочную информацию и тексты ошибок СУБД.
- Регулярный аудит и пентесты: Нанимайте специалистов или проводите Bug Bounty программы, чтобы найти дыры раньше, чем их найдут злоумышленники.
Вместо заключения
Sqlmap — это невероятно мощный скальпель в руках специалиста. Но, как и любой инструмент, он требует понимания. Важно не просто заучить команды, а осознавать, что происходит "под капотом", помнить об ответственности и всегда думать на два шага вперед — не только как атаковать, но и как защититься.
Надеюсь, это руководство поможет вам в ваших (легальных!) исследованиях. Успешного пентеста и безопасного кода!
Продолжение: Гайд по SQL-инъекциям: SQLMap + Hashcat
Обновлено и дополнено командой античат на основе официальной документации sqlmap и практического опыта.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|