#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#»:
В итоге мы узнали имена пользователей и пароли в этой базе данных.