#1 Уязвимость DVWA. SQL-Injection (уровень Low).
Здравствуйте, дорогие друзья.
Давайте рассмотрим уязвимости веб-приложения DVWA, в частности SQL-инъекцию на уровне Low. Думаю, Вы уже знаете, что такое SQL-инъекция, поэтому сразу перейдем к практике.
Выставим значение уровня безопасности на Low:

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

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

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

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


Итак, 2 столбца у нас уже есть, исходя из проверки. Введем команду «1’ order by 3 #»:

Исходя из полученной записи делаем вывод, что в таблице 2 столбца.
Теперь проверим версию базы данных, с помощью запроса «1’ union select null, version() #»:

Версия базы данных (5.0.51a-3ubuntu5), и она показана на скриншоте выше.
Теперь проверим имя пользователя, с помощью команды «1’ union select null, user() #»:

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

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

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

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