Установка и использование SQLMap на Kali Linux

SQLMap использование установка Kali Linux

SQL инъекции до сих пор остаются одной из наиболее распространенных уязвимостей веб-приложений. Хакеры активно используют их для получения несанкционированного доступа к базам данных и хищения конфиденциальной информации. Для этой цели существует множество инструментов, один из которых — SQLMap. В статье расскажу, что такое SQLMap и покажу как его использовать.

Еще по теме: Взлом сайта с помощью SQLMap

Что такое SQLMap

Sqlmap — это бесплатный инструмент на Python, для автоматизации поиска, эксплуатации и тестирования уязвимостей SQL.

Возможности SQLMap:

  • Автоматическое обнаружение SQL инъекций, в том числе слепых инъекций.
  • Внедрение в веб-приложение для выполнения произвольных SQL запросов и получения несанкционированного доступа к БД.
  • Извлечение данных из БД, включая пароли пользователей.
  • Возможность работы через прокси и эвазионные техники для обхода WAF.
  • Поддержка широкого списка СУБД, включая MySQL, Oracle, PostgreSQL и др.

Этот инструмент способен обнаружить уязвимости SQL-инъекции с использованием различных методов. Если будет обнаружена уязвимость, он способен атаковать сервер для определения имен таблиц, загрузки базы данных и автоматического выполнения SQL-запросов.

Как только он обнаруживает SQL-инъекцию на целевом хосте, вы сможете:

  • Провести обширное обнаружение версии базы данных бэкэнда
  • Получить имя пользователя и базы данных сессии DBMS
  • Перечислить пользователей, хеши паролей, привилегии и базы данных
  • Выгрузить всю таблицу/столбцы DBMS или конкретную таблицу/столбцы пользователя
  • Выполнить пользовательские SQL-запросы

Установка SQLMap на Kali Linux

SQLMap по умолчанию установлен в некоторые секьюрити дистрибутивы, такие как Kali Linux (в полной версии).

Для установки SQLMap на Kali Linux (легкую версию) или другие дистрибутивы на базе Debian, выполните команду:

Еще один способ установки — это скачивание из репозитория проекта на GitHub.

Использование SQLMap на Kali Linux

После установки, откройте справку и изучите параметры использования:

Параметры запуска:

Цель — должен быть предоставлен хотя бы один из этих параметров для определения цели(ей):

Инъекция — эти аргуемнты могут быть использованы для указания, какие параметры тестировать, предоставить пользовательские внедряемые данные и необязательные сценарии модификации:

Обнаружение — эти аргументы могут быть использованы для настройки фазы обнаружения:

Техники — эти аргументы могут быть использованы для настройки тестирования конкретных техник SQL-инъекций:

Перечисление — эти аргументы могут быть использованы для перечисления информации о СУБД, структуре и данных в таблицах:

В первую очередь, используем параметр -u, чтобы ввести адрес целевого сайта:

После выполнения предыдущей команды видно, что параметр cat подвержен уязвимости.

SQLMap использование Kali Linux

Следующим шагом будет получение информации о существующих базах данных.

В этом примере мы используем стандартный запрос на основе HTTP GET к URL с параметром (?id=X). Это позволит проверить различные методы SQL-инъекции относительно параметра id (аргумент --dbs):

Выполнение команды отобразит информацию о базах данных acuart и information_schema.

SQLMap как пользоваться

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

Как вы увидите в выводе ниже, мы можем продолжить тестирование целевой системы без необходимости повторного тестирования уязвимости. SQLMap использует информацию, которой он располагает о сайте, для дальнейшей эксплуатации целевой базы данных. Чтобы извлечь данные, просто добавляем параметр к предыдущей команде. Добавив --tables попытаться извлечь все таблицы в интересующей нас базе данных.

Для перечисления информации о таблицах, присутствующих в конкретной базе данных используется аргумент -D вместе с именем базы данных . В следующем примере мы используем опцию --tables для доступа к базе данных information_schema:

Выполнив команду, мы сможем получить информацию о таблицах, доступных в базе данных information_schema.

SQLMap Linux

Было восстановлено 79 таблиц из базы данных information_schema. Мы можем продолжить перечисление информации о столбцах конкретной таблицы. Для этой задачи мы можем использовать параметр -T в сочетании с именем таблицы, чтобы увидеть столбцы определенной таблицы. Точно так же мы можем получить имена столбцов с помощью опции --columns.

Следующей командой попробуем получить столбцы определенной таблицы. В этом случае мы указываем таблицу с помощью параметра -T, а с помощью --columns указываем отображение столбцов.

Выполнив предыдущую команду, мы сможем извлечь информацию о столбцах, доступных в таблице administrable_role_authoritzations. В данном случае — 9 столбцов.

SQLMap injection

Аналогично, мы можем получить доступ ко всей информации в определенной таблице, используя следующую команду, где запрос --dump извлекает все данные из таблицы products в базе данных acuart:

Выполнив предыдущую команду, мы сможем получить информацию о записях, доступных в таблице products. В данном примере было восстановлено три записи.

SQLMap гайд

Выполнив следующую команду, мы сможем извлечь информацию обо всех таблицах в текущей базе данных. Для этой задачи, чтобы получить все имена таблиц и имена столбцов, используем аргументы --tables и --columns:

Выполнив следующую команду, мы можем получить шелл для взаимодействия с базой данных с использованием языка запросов SQL:

Параметр -sql-query выполнит указанную нами команду/запрос. В данном примере, так как мы используем SELECT, он вернет результат запроса. Если бы это была другая команда, такая как UPDATE или DELETE, он выполнил бы только запрос и вернул количество затронутых строк. Таким образом, у нас есть реальный контроль над данными, содержащимися в базе данных.

SQLMap база данных

Где новичку практиковаться по SQLi?

Я рекомен­дую прой­ти пару тре­ниро­воч­ных заданий. Нап­ример, мо­дуль HTB Academy, пос­вящен­ный SQLi, или ана­логич­ный модуль на пло­щад­ке TryHackMe. А еще луч­ше — оба!

За­тем можете заг­лянуть на сайт PortSwigger и прой­ти «путь» SQL injection. Сра­зу пре­дуп­реждаю, что он слож­ный и даже очень слож­ный для нович­ка, но там вез­де при­веде­ны отве­ты. Луч­ше в них не смот­реть сра­зу, но, если вдруг зас­тря­нете, они выручат.

Еще могу пореко­мен­довать две очень инте­рес­ные лабора­тор­ные работы с пло­щад­ки Hack The Box: PC и Magic или хотя бы те их час­ти, что свя­заны с ата­ками на веб и получе­нием поль­зователь­ско­го фла­га (повыше­ние при­виле­гий в Linux можете пока не тро­гать).

Заключение

Как видите, инструмент имеет множество комбинаций и возможностей, которые могут помочь эксплуатировать уязвимость. SQLMap — самый популярный инструмент на Python, для обнаружения уязвимостей, связанных с SQL-инъекциями в веб-приложениях. Тулза должна быть в арсенале каждого специалиста по информационной безопасности.

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

ПОЛЕЗНЫЕ ССЫЛКИ:

Ban32

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

Добавить комментарий