Найти тему

#15 Уязвимость DVWA SQL-Injection (Уровень Medium)

Здравствуйте, дорогие друзья.

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

Переходим к практике, и перейдем в уязвимое веб-приложение DVWA.

Нам необходимо выставить настройки безопасности на «Medium»:

-2

Далее переходим на вкладку «SQL Injection». Данная страница представляет собой кнопку выбора id, и «submit» для вывода информации:

-3

Нам нужно перехватывать трафик с данной страницы, с помощью инструмента Burp Suite.

Для начала нужно сконнектить BurpSuite с браузером Mozilla Firefox.

Первым шагом мы идем в браузер на верхний правый угол (бургер), и выбираем вкладку «Preferences»:

-4

Скроллим появившуюся страницу в самый низ, и выбираем «Settings», далее жмем на радиокнопку «Manual Proxy Configuration», и выставляем интерфейс как: 127.0.0.1 и порт 8001:

-5

Отлично. Мы настроили браузер для коннекта с BurpSuite. Запускаем данный инструмент и переходим на вкладку выбора интерфейса. Это путь по вкладкам «Proxy», «Options»:

-6

Теперь переходим на вкладку «Intercept» для перехвата трафика:

-7

Отправим запрос в «Repeater» для тестирования на предмет уязвимости. Вставим для начала одинарную кавычку и получаем ошибку синтаксиса:

-8

Вставим такую команду: «1 and 1=1%23»:

-9

Видим вывод кода. Можем также наглядно просмотреть, что происходит на странице с помощью вкладки «Renderer»:

-10

Экспериментируем, и вставим в команде цифру 2. Получим:

-11

В итоге ничего не выводится:

-12

Продолжим исследовать уязвимость, и введем такую команду: «1 order by 10%23»:

-13

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

А если запустим команду со значением «2», то видим корректный вывод:

-14

Попробуем ввести другую запись. Такую как: «1 union select 1.2%23»:

-15

Уже что-то есть. Пробуем дальше, и попытаемся вывести имя базы данных и ее версию, с помощью команды: «1 union select database(), version()%23»:

-16

Все отлично отработало, мы знаем больше информации о базе данных.

Теперь введем довольно длинную команду, которая включает в себя hex-значение ключевого слова «users». Перейдем в декодер и скопируем данное значение:

-17

Команда будет выглядеть как: «id=1 union select column_name,2 from information_schema.columns where table_name = 0x7573657273%23»:

-18
-19

Теперь давайте попробуем вывести пароли пользователей на данном сайте. Это можно реализовать с помощью команды: «id=1 union select user,password from users%23»:

-20

В итоге мы получили вывод хэшей паролей и имена пользователей.

На этом все. Всем хорошего дня!