Найти тему

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

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

Давайте рассмотрим уязвимости веб-приложения DVWA, в частности SQL-инъекцию на уровне Low. Думаю Вы уже знаете, что такое SQL-инъекция, поэтому сразу перейдем к практике.

Выставим значение уровня безопасности на Low:

-2

Перейдем на вкладку «SQL-Injection», и введем цифру 1 для примера:

-3

Обратите внимание на вывод информации. Это говорит о том, что страничка работает корректно, но в ней есть уязвимость.

Пробуем ввести цифру 2, и получаем тот же самый вывод:

-4

Нам нужно проверить, уязвима данная страница к SQL-инъекциям. Для этого вводим одинарную кавычку:

-5

Получаем ошибку синтаксиса, а это значит, что уязвимость действительно здесь есть.

Проверим количество столбцов с помощью SQL-запросов. Команды будут выглядеть как: «1’ order by 1 #», «1’ order by 2 #»:

-6
-7

Итак, 2 столбца у нас уже есть, исходя из проверки.

Введем команду «1’ order by 3 #»:

-8

Исходя из полученной записи делаем вывод, что в таблице 2 столбца.

Теперь проверим версию базы данных, с помощью запроса «1’ union select

null, version() #»:

-9

Версия базы данных (5.0.51a-3ubuntu5), и она показана на скриншоте выше.

Теперь проверим имя пользователя, с помощью команды «1’ union select null, user() #»:

-10

Теперь узнаем имя базы данных с помощью команды: «1’ union select null, database() #»:

-11

База данных называется «dvwa».

Продолжим исследование уязвимости, и теперь попробуем имя таблицы от information_schema.tables. Команда: «1’ union select null, table_name from information_schema.tables #»:

-12

Настала пора узнать захэшированные пароли и имена пользователей. Это делается с помощью команды «1' union select null, concat(first_name,0x0a,last_name,0x0a,user,0x0a,password) from users#»:

-13

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

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