Тестирование на проникновение в базу данных с использованием 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

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