#15 Уязвимость DVWA. SQL-Injection (Уровень Medium).
Здравствуйте, дорогие друзья. Продолжаем рассматривать тематику уязвимостей DVWA, и в данном уроке поговорим о SQL-инъекциях на среднем уровне настроек безопасности.
Переходим к практике, и перейдем в уязвимое веб-приложение DVWA.
Нам необходимо выставить настройки безопасности на «Medium»:
![настройки безопасности dvwa medium](https://timcore.ru/wp-content/uploads/2021/04/screenshot_1-36.png)
Далее переходим на вкладку «SQL Injection». Данная страница представляет собой кнопку выбора id, и «submit» для вывода информации:
![вкладка sql injection](https://timcore.ru/wp-content/uploads/2021/04/screenshot_2-36.png)
Нам нужно перехватывать трафик с данной страницы, с помощью инструмента Burp Suite.
Для начала нужно сконнектить BurpSuite с браузером Mozilla Firefox.
Первым шагом мы идем в браузер на верхний правый угол (бургер), и выбираем вкладку «Preferences»:
![настройки mozilla firefox preferences](https://timcore.ru/wp-content/uploads/2021/04/screenshot_3-36.png)
Скроллим появившуюся страницу в самый низ, и выбираем «Settings», далее жмем на радиокнопку «Manual Proxy Configuration», и выставляем интерфейс как: 127.0.0.1 и порт 8001:
![manual proxy configuration](https://timcore.ru/wp-content/uploads/2021/04/screenshot_4-35.png)
Отлично. Мы настроили браузер для коннекта с BurpSuite. Запускаем данный инструмент и переходим на вкладку выбора интерфейса. Это путь по вкладкам «Proxy», «Options»:
![выставляем интерфейс в burpsuite](https://timcore.ru/wp-content/uploads/2021/04/screenshot_5-30-1024x436.png)
Теперь переходим на вкладку «Intercept» для перехвата трафика:
![intercept burpsuite](https://timcore.ru/wp-content/uploads/2021/04/screenshot_6-29-1024x554.png)
Отправим запрос в «Repeater» для тестирования на предмет уязвимости. Вставим для начала одинарную кавычку и получаем ошибку синтаксиса:
![отправляем запрос в repeater](https://timcore.ru/wp-content/uploads/2021/04/screenshot_7-25-1024x538.png)
Вставим такую команду: «1 and 1=1%23»:
![1 and 1=1%23](https://timcore.ru/wp-content/uploads/2021/04/screenshot_8-22-1024x576.png)
Видим вывод кода. Можем также наглядно просмотреть, что происходит на странице с помощью вкладки «Renderer»:
![вкладка renderer](https://timcore.ru/wp-content/uploads/2021/04/screenshot_9-21.png)
Экспериментируем, и вставим в команде цифру 2. Получим:
![вставляем в команде цифру 2](https://timcore.ru/wp-content/uploads/2021/04/screenshot_10-19.png)
В итоге ничего не выводится:
![ничего не выводится на странице](https://timcore.ru/wp-content/uploads/2021/04/screenshot_11-18.png)
Продолжим исследовать уязвимость, и введем такую команду: «1 order by 10%23»:
![1 order by 10%23](https://timcore.ru/wp-content/uploads/2021/04/screenshot_12-15-1024x459.png)
Получаем вывод того, что данная колонка не известна приложению.
А если запустим команду со значением «2», то видим корректный вывод:
![запускаем команду со значением "2"](https://timcore.ru/wp-content/uploads/2021/04/screenshot_13-11-1024x575.png)
Попробуем ввести другую запись. Такую как: «1 union select 1,2%23»:
![1 union select 1,2%23](https://timcore.ru/wp-content/uploads/2021/04/screenshot_14-10-1024x515.png)
Уже что-то есть. Пробуем дальше, и попытаемся вывести имя базы данных и ее версию, с помощью команды: «1 union select database(), version()%23»:
![1 union select database(), version()%23](https://timcore.ru/wp-content/uploads/2021/04/screenshot_15-8-1024x515.png)
Все отлично отработало. Мы знаем больше информации о базе данных.
Теперь введем довольно длинную команду, которая включает в себя hex-значение ключевого слова «users». Перейдем в декодер и скопируем данное значение:
![hex-значение слова users](https://timcore.ru/wp-content/uploads/2021/04/screenshot_16-6-1024x368.png)
Команда будет выглядеть как: «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](https://timcore.ru/wp-content/uploads/2021/04/screenshot_17-5-1024x450.png)
![вывод команды id=1 union select column_name,2 from information_schema.columns where table_name = 0x7573657273%23](https://timcore.ru/wp-content/uploads/2021/04/screenshot_18-5.png)
Теперь давайте попробуем вывести пароли пользователей на данном сайте. Это можно реализовать с помощью команды: «id=1 union select user,password from users%23»:
![id=1 union select user,password from users%23](https://timcore.ru/wp-content/uploads/2021/04/screenshot_19-5-1024x520.png)
В итоге мы получили вывод хэшей паролей и имена пользователей.
#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).