Добавить в корзинуПозвонить
Найти в Дзене

Инструменты хакера. Знакомство с SQLmap - ищем уязвимость на инъекции.

SQLmap — это инструмент с открытым исходным кодом, разработанный для автоматизации процесса поиска и эксплуатации уязвимостей SQL-инъекций в веб-приложениях. SQLmap используется как профессионалами в области информационной безопасности (например, для тестирования на проникновение), так и хакерами для атак на базы данных. Подписывайтесь на мой канал в Телеграмм, чтобы ничего не пропустить. Давайте познакомимся с этим инструментом. Если будет интересно узнать о нем подробнее - пишите в комментариях. SQLmap предлагает широкий набор функций, которые делают его одним из наиболее популярных инструментов для работы с SQL-инъекциями. Вот некоторые из них: 1. Автоматическое определение уязвимостей SQL-инъекций: SQLmap может сканировать веб-приложение и автоматически определять, подвержен ли запрос SQL-инъекции.
2. Поддержка различных типов SQL-инъекций:
SQLmap умеет работать с несколькими типами атак, включая: 3. Дамп данных из баз данных: SQLmap может извлекать данные из баз данных, включая
Оглавление

SQLmap — это инструмент с открытым исходным кодом, разработанный для автоматизации процесса поиска и эксплуатации уязвимостей SQL-инъекций в веб-приложениях.

SQLmap используется как профессионалами в области информационной безопасности (например, для тестирования на проникновение), так и хакерами для атак на базы данных.

Подписывайтесь на мой канал в Телеграмм, чтобы ничего не пропустить.

Давайте познакомимся с этим инструментом. Если будет интересно узнать о нем подробнее - пишите в комментариях.

Основные возможности SQLmap

SQLmap предлагает широкий набор функций, которые делают его одним из наиболее популярных инструментов для работы с SQL-инъекциями. Вот некоторые из них:

1. Автоматическое определение уязвимостей SQL-инъекций:

SQLmap может сканировать веб-приложение и автоматически определять, подвержен ли запрос SQL-инъекции.

2. Поддержка различных типов SQL-инъекций:
SQLmap умеет работать с несколькими типами атак, включая:

  • Error-based (основанные на ошибках),
  • Union-based (основанные на объединении),
  • Boolean-based blind (логические слепые инъекции),
  • Time-based blind (временные слепые инъекции),
  • Out-of-band (внеполосные).

3. Дамп данных из баз данных:

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

4. Взлом паролей:

SQLmap позволяет извлекать хэши паролей и пытаться взломать их с помощью встроенных методов быстрого перебора (brute-force) или словарных атак.

5. Поддержка различных СУБД:
SQLmap поддерживает большинство популярных систем управления базами данных (СУБД), включая:

  • MySQL,
  • PostgreSQL,
  • Microsoft SQL Server,
  • Oracle,
  • SQLite,
  • IBM DB2,
  • MariaDB,
  • Firebird,
  • SAP MaxDB, и другие.

6. Выполнение произвольных команд:

Через SQLmap можно выполнять произвольные команды на сервере, если удается получить доступ к его файловой системе или привилегиям.

7. Интеграция с прокси и обход фильтров:

SQLmap предоставляет поддержку работы через прокси-серверы, что позволяет обойти блокировки, фильтры и маскировать свои действия.

8. Обход WAF (Web Application Firewall):

SQLmap имеет встроенные модули для обхода защит, таких как WAF или IDS/IPS.

Установка SQLmap

SQLmap написан на Python и может быть установлен на большинстве операционных систем (Windows, Linux, macOS). Для установки необходимо:

1. Убедиться, что Python установлен на вашей системе.

2. Скачать SQLmap с официального репозитория GitHub:

git clone https://github.com/sqlmapproject/sqlmap.git

3. Перейти в директорию sqlmap и запустить:

python sqlmap.py

Пример использования

Для запуска SQLmap нужно указать URL-адрес целевого веб-приложения. Например:

python sqlmap.py -u "http://example.com/index.php?id=1"

Опции:

-u: Указывает URL для проверки.
--dbs: Выводит список доступных баз данных.
-D [database] --tables: Показывает таблицы в указанной базе данных.
-T [table] --columns: Показывает столбцы в указанной таблице.
-D [database] -T [table] --dump: Извлекает данные из таблицы.

Пример:

python sqlmap.py -u "http://example.com/index.php?id=1" --dbs

Пример поиска уязвимостей на инъекции

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

1. Подготовка

Перед началом работы убедитесь, что у вас есть:

  • Установленный SQLmap (скачать с GitHub).
  • Целевой веб-сайт или веб-приложение, на котором вы имеете право проводить тесты (например, тестовая лаборатория или собственный сайт).
  • Информация о входных точках (например, параметрах URL, формах ввода и т.д.), где могут быть уязвимости.

2. Определение целей

SQL-инъекции проверяются на тех местах, где веб-приложение взаимодействует с базой данных. Обычно это:

  • Параметры URL: http://example.com/page.php?id=123
  • Формы ввода (поля, отправляемые через POST-запросы).
  • Заголовки HTTP (например, User-Agent, Referer).
  • Cookies.

3. Базовая проверка на уязвимость

Для начала проведем базовый тест, чтобы определить, уязвим ли целевой сайт к SQL-инъекции.

Пример:

sqlmap -u "http://example.com/page.php?id=1"
  • Что делает эта команда?-u указывает целевой URL.
    SQLmap автоматически пытается вставить различные вредоносные SQL-запросы в параметр id и анализирует ответы сервера.

Результат:

Если сайт уязвим, SQLmap покажет сообщение, подтверждающее возможность SQL-инъекции. Например:

Parameter 'id' appears to be 'UNION query' injectable

4. Поиск типа SQL-инъекции

SQLmap автоматически определяет тип SQL-инъекции (например, Union-based, Error-based, Time-based и т.д.), однако вы можете указать его вручную для более точной проверки.

Пример для проверки Time-based blind SQL-инъекций:

sqlmap -u "http://example.com/page.php?id=1" --technique=T
  • --technique=T указывает SQLmap использовать только Time-based инъекции.

Другие типы:

  • B — Boolean-based Blind.
  • E — Error-based.
  • U — Union-based.
  • S — Stacked queries.
  • Q — Inline queries.

5. Проверка форм ввода (POST-запросы)

Если вы хотите проверить поля формы, отправляющей данные методом POST (например, форму авторизации или поиска), используйте параметр --data.

Пример:

sqlmap -u "http://example.com/login.php" --data "username=admin&password=12345"

Здесь SQLmap будет проводить атаки на параметры username и password.

6. Проверка заголовков HTTP

Вы можете проверять уязвимости в заголовках HTTP, таких как User-Agent, Referer или Cookie.

Пример:

sqlmap -u "http://example.com/page.php" --headers="User-Agent: SQLmapTest"

7. Обход защит (WAF, фильтры)

Если веб-приложение защищено Web Application Firewall (WAF) или использует фильтры, SQLmap может помочь обойти их.

Пример:

sqlmap -u "http://example.com/page.php?id=1" --tamper=space2comment
  • --tamper указывает использовать специальный скрипт для обхода фильтров (например, space2comment заменяет пробелы в запросах на комментарии SQL).
  • Другие популярные скрипты обхода: between, randomcase, charencode.

8. Вывод баз данных

Если уязвимость подтверждена, можно запросить список баз данных на сервере:

Пример:

sqlmap -u "http://example.com/page.php?id=1" --dbs

Результат: SQLmap покажет список всех баз данных.

9. Поиск таблиц и данных

После получения списка баз данных можно углубиться в их структуру.

Получение списка таблиц:

sqlmap -u "http://example.com/page.php?id=1" -D имя_базы --tables

Получение списка столбцов в таблице:

sqlmap -u "http://example.com/page.php?id=1" -D имя_базы -T имя_таблицы --columns

Извлечение данных из таблицы:

sqlmap -u "http://example.com/page.php?id=1" -D имя_базы -T имя_таблицы --dump

10. Автоматическое тестирование всех параметров

Если вы хотите проверить все параметры в URL, вы можете использовать флаг --level и --risk.

Пример:

sqlmap -u "http://example.com/page.php?id=1&name=test" --level=3 --risk=2
  • --level=3: Уровень агрессивности сканирования (по умолчанию 1, максимум 5).
  • --risk=2: Уровень риска (по умолчанию 1, максимум 3).

11. Анализ и отчет

SQLmap автоматически сохраняет результаты тестирования, и вы можете вернуться к ним позже. Логи сохраняются в директории output.

Важные аспекты

  • Этичное использование: SQLmap должен использоваться только для тестирования ваших собственных систем или с разрешения владельца.
  • Юридическая ответственность: Неавторизованное использование SQLmap для атаки на чужие системы может быть незаконным и привести к уголовной или административной ответственности.
  • Обход защит: Если у веб-приложения настроены механизмы защиты (например, WAF), SQLmap может попытаться обойти их, но это не гарантируется.

Полезные ссылки

SQLmap — хороший инструмент, но его сила требует ответственного подхода к использованию.

Поддержать блог можно лайком и комментарием. А если хочется сделать больше, можно кинуть монетку сове на кофе.

Раз вы прочитали эту статью, скорее всего вам будет интересен весь раздел про Анонимность в сети, а также Инструменты хакера / пентестера

Если Вам интересно, что еще можно найти на канале QA Helper, прочитайте статью: Вместо оглавления. Что вы найдете на канале QA Helper - справочник тестировщика?

Не забудьте подписаться на канал, чтобы не пропустить полезную информацию: QA Helper - справочник тестировщика

Пишите в комментариях что еще было бы интересно рассмотреть более подробно.

-2