# Домашняя работа №2 (Устройство современных веб-приложений и сбор информации задачи на root-me и portswigger)
###### tags: `Домашние задания Web Application Penetration Testing`
- Начнем с задач на root-me
1) Задача: Backup File
Открываем запрос в BurpSuite.

Ничего интересного не видим. Пробуем добавить index.php. Аналогично.
Попробуем передать запрос в intruder и перебрать файлы в директории с помощью Sniper (но помним про бан ip).
Нужное нам расширение - php~.

Сдаем ключ.
2) Задача: HTTP - Directory indexing
Открываем запрос в BurpSuite.

В ответе есть подсказка, что искать нужно по пути admin/pass.html.
Дописываем его.

Не находим ключа. Попробуем также пройти по пути admin.

Передем в браузере.

Сдаем ключ.
3) Задача: Install files
Открываем запрос в BurpSuite.

Ничего интересного, кроме того что это папка. Поищем с помощью dirb подобных утилит.

Переходим по найденному пути.

Сдаем ключ.
4) Задача: Insecure Code Management
Открываем задачу. Судя по описанию это сервер с git. Проверяем есть ли git по пути .git.

Обнаруживаем различные директории.
Скачиваем набор утилит для перебора gitа - https://github.com/internetwache/GitTools
Для начала используем gitdumber, для загрузки всех возможных путей с нужного нам git.

Затем из этого же пакета используем утилиту extractor для поиска коммитов в данном репозитории.

Первая папка это где лежит репозиторий, вторая куда положить коммиты.
Получили 5 папок. Попробую поискать информацию в каждой из них по очереди.
Подставляя каждый пароль из найденных выясняем что правильный в папке под номером 4.

____
Задачи с portswigger.

1) Information disclosure in error messages
Открываем страницу по задаче и смотрим её в burp. По названию задаче мы должны увидить какую то информацию о сервере в ошибке. Попробуем её создать, например если передем на любую страницу и добавим в индекс символ.

Видим версию apache сдаем ключ.
2) Information disclosure on debug page
Открываем страницу по задаче и смотрим её в burp. На первый взгляд ничего не видно. Поищем debug страницу через SiteMap. Находим её.

Отправляем запрос через Repeater.

Попробуем сдать версию php как ключ. Не подходит.
Поищем на странице ключ.

Успешно сдаем.
3) Source code disclosure via backup files
В основной директории сайта не находим ничего интересного. Попробуем перебрать директории через burp.

Находим путь backup.
В ответе находим еще один путь.

Проходим по нему.

Находим ключ. Сдаем.
4) Authentication bypass via information disclosure
Судя по заданию, нам необходимо получить доступ в обход авторизации. Сразу переберем директории.

Находим, что admin имеет нестандартный ответ, проверим её.
Перебираем различные методы находим на метод trace интересный ответ.

Сервер отдает custom ip. Попробуем заменить добавить его в запрос. Результат получили только поменяв его на localhost адрес.

Видим пользователей в списке. Из описания можно понять, что имеется возможность удалить пользователя если сделать такой запрос. Попробуем.

Запрос выполнился. Учетка удалена.

Задание пройдено.
5) Information disclosure in version control history
Подобное задание мы уже делали на рут ми. Проверяме директорию git.

Используем утилиту как и на рут ми.

Находим пароль админа.

Авторизуемся под ним.
Попробуем удалить пользователя.

Успешно.

Задание пройдено.