Тестирование на проникновение в базу данных с использованием SQLmap

Тестирование на проникновение в базу данных с использованием SQLmap

Этичный Хакер

Описание sqlmap

sqlmap — это инструмент с открытым исходным кодом для тестирования на проникновение, который автоматизирует процесс выявления и эксплуатации уязвимости SQL-инъекция и захват серверов баз данных. Он поставляется с мощным движком выявления и многими нишевыми функциями для конечного тестера на проникновение, имеет широкий набор возможностей, начиная от сбора отпечатков баз данных по полученной от них данным, до доступа к файловой системе и выполнения команд в операционной системе посредством внеполосных (out-of-band) подключений.

Домашняя страница: http://sqlmap.org/

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

Прочитать все это на русском языке можно тут.

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

Возьмем пример:

http://testphp.vulnweb.com/artists.php?artist=1

Если видите подобное, то смело проверяйте сайт на наличие SQL уязвимости.

Наша цель прервать запрос, чтобы получить сообщение об ошибке. Если такое сообщение получено, то веб-сервер подвержен SQL-инъекции

# поставим символ ' в конце
http://testphp.vulnweb.com/artists.php?artist=1'

На скриншоте видно, что мы успешно получили сообщение об ошибке. Таким образом, мы провели SQL-атаку на веб-сервер, и узнали, что можем получить информацию из базы данных.

Базы данных

Для тестирования на проникновение в базу данных мы всегда выбираем SQLMAP, этот инструмент очень полезен для новичков, которые не могут получить информацию из базы данных вручную или не знакомы с методами внедрения SQL.

Откройте терминал в Kali Linux и введите следующую команду, которая запускает атаку SQL-инъекции на целевой веб-сайт. 

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dbs --batch

 -u:  целевой URL

--dbs: получить имя базы данных

--batch: для поведения по умолчанию всякий раз, когда потребуется ввод пользователя

Здесь, на приведенном снимке экрана, вы можете видеть, что мы успешно получили имя базы данных « acuart ».

Таблицы

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

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" -D acuart --tables --batch

 -D: имя база данных (полученное имя базы данных на прошлом этапе)

--tables: перечислить таблицы, выбранной нами базы данных.

В результате, как показано на скриншоте, мы перечислили полное имя таблицы системы баз данных. В базе данных acuart есть 8 таблиц:

T1: artists, T2: carts, T3: categ, T4: featured, T5: guestbook, T6: pictures, T7: products, T8: users

Столбцы

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

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" -D acuart -T users --columns --batch

-T: таблица базы данных (имя выбранной таблицы)

--сolumns: вывести столбцы базы данных СУБД

Получить данные из таблицы

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

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" -D acuart -T users --dump --batch

--dump: выгрузить всю информацию из базы данных СУБД

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

Выгрузить все

Последняя команда - самая мощная команда в sqlmap, которая сэкономит ваше время при тестировании на проникновение в базу данных; эта команда выполнит все вышеуказанные функции сразу и выведет всю информацию о базе данных, включая имена таблиц, столбцы и т. д.

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" -D acuart --dump-all --batch

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

Попробуй сам!!!


Report Page