Категория > Новости > HTB Extension. Пентестим плагин для Gitea и сбегаем из Docker - «Новости»
HTB Extension. Пентестим плагин для Gitea и сбегаем из Docker - «Новости»24-03-2023, 09:55. Автор: Carter |
Hack The Box. Уровень — «сложный».warningПодключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками. РазведкаСканирование портовДобавляем IP-адрес машины в 10.10.11.171 extension.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 7.6p1 и 80 — веб‑сервер Nginx 1.14.0. Начинаем, конечно же, с сайта. Главная страница сайта http://extension.htb На сайте видим указанный домен, который добавляем в файл 10.10.11.171 extension.htb snippet.htb Так как он реальный, мы можем просканировать поддомены. Я использую сканер ffuf. Справка: сканирование веба c ffufОдно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB. Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
Место перебора помечается словом Команда получается следующая: ffuf -u 'http://snippet.htb/' -r -wsubdomains-top1million-110000.txt -t 256 -H 'Host: FUZZ.snippet.htb' --fl 30 Так находим еще два поддомена, которые тоже добавляем в файл 10.10.11.171 extension.htb snippet.htb dev.snippet.htb mail.snippet.htb В Gitea можем без авторизации посмотреть существующих пользователей. Пользователи Gitea Сканирование каталогов на пользовательском сайте тоже ничего не дало. ffuf -u 'http://snippet.htb/FUZZ' -r -wdirectory_2.3_medium_lowercase.txt -t 256 Точка входаТогда посмотрим на пользовательский сайт через Burp. Нас интересует Burp History. Вкладка Burp History В коде страницы видим использование какого‑то API. Изучив его подробнее, находим возможность не только получать разную информацию, но и дампить ее. API для дампа информации Первым делом я решил посмотреть на пользователей сайта, но это получится только после авторизации. Запрос страницы /users А вот при запросе дампа нам отвечают, что мы не указали нужный параметр. То есть никакой авторизации не требуется. Запрос страницы /management/dump Так как нам интересна информация о пользователях, в качестве значения будем использовать Burp Intruder — вкладка PositionsРезультат перебора имени параметра И находим название нужного параметра — Полученные данные Нам доступны хеши паролей пользователей, поэтому для перебора попробуем узнать алгоритм с помощью Распознавание алгоритма хеширования В качестве алгоритма шифрования, скорее всего, используется SHA-256. Давай выберем из списка все пары логинов и паролей. Затем можно все последовательности Результат перебора хешей С полученными учетными данными мы можем авторизоваться на сайте. Главная страница авторизованного пользователя Точка опорыПользовательский сервисМы можем перейти к сниппетам и создать свой. Так у нас будет возможность менять и удалять его. Доступные сниппеты При изменении сниппета передаются его параметры и тип: публичный или нет. Тогда я решил перебрать идентификатор сниппета, чтобы узнать, как работает контроль доступа к изменению параметров. И у нас получилось сделать публичным чей‑то сниппет. Запрос на публикацию сниппетаДоступные сниппеты Просмотрим вытащенный нами сниппет и найдем там HTTP-заголовок базовой аутентификации. Декодируем строку Base64 и получаем учетные данные для пользователя Содержимое сниппетаУчетные данные пользователя С полученными учетными данными можем авторизоваться в Gitea. Там нам доступен один проект. Репозиторий extension GiteaСам проект — это плагин браузера для быстрого оповещения об ошибках. В настройках проекта находим соавтора, это нам пригодится. Соавторы проекта Просматривая историю изменений, обращаем внимание, что при публикации сообщения его текст должен фильтроваться. Старый фильтр сообщений Находим подобный фрагмент в коде текущего параметра. Новый фильтр сообщений Из сообщения удаляется любая последовательность символов, если она заключена в треугольные скобки, то есть похожа на HTML-тег. Также если присутствует последовательность символов, приведенных в переменной qwe<qwe><img src="http://10.10.14.7/test"> В логах веб‑сервера увидим подключение, значит, можно проэксплуатировать хранимую XSS. Хранимая XSSПерейти обратно к новости |