Категория > Новости > HTB BountyHunter. Ломаем сайт на PHP через XXE и пентестим приложение на Python - «Новости»
HTB BountyHunter. Ломаем сайт на PHP через XXE и пентестим приложение на Python - «Новости»6-12-2021, 00:00. Автор: Black |
Hack The Box я продемонстрирую эксплуатацию уязвимости XXE, работу с обертками в PHP и эксплуатацию бага в программе на Python. Это не самые хитрые уязвимости, зато они встречаются в реальных условиях.warningПодключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками. Разведка. Сканирование портовДобавляем IP-адрес машины в
10.10.10.100 bountyhunter.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 (служба SSH) и 80 (веб‑сервер Apache 2.4.41). Начинаем с веб‑сервера. Справка: брутфорс учетокПоскольку в начале прохождения у нас нет учетных данных, нет и смысла изучать службы, которые всегда требуют авторизации (например, SSH). Единственное, что мы можем делать здесь, — это перебирать пароли брутфорсом, но у машин с HTB почти всегда есть другое прохождение. В жизни таких вариантов может не быть, к тому же есть шансы подобрать пароль или получить его при помощи социальной инженерии. Внимательно изучим сайт и соберем ценную информацию. Сайт кажется простеньким. Видим несколько навигационных ссылок и кнопку для скачивания какого‑то файла. Кнопка оказалась нерабочей, как и первые две ссылки, но зато ссылка Portal приводит нас на страницу Точка входаОтправив тестовые данные, мы получим сообщение, что если база данных готова, то наши данные будут в нее добавлены. Форма Bounty Report System Первым делом я хотел тестировать SQL-инъекцию в запросе Insert, но все же взглянул на весь путь наших запросов через Burp. Все запросы можно увидеть в Burp History. Вкладка Burp History Что бросилось в глаза — я заполнял четыре параметра, а отправляется один, причем в кодировке Base64. Благо в Burp Pro сейчас есть плагин Inspector, который автоматически разбирает и снимает известные кодировки. Burp Inspector Именно Inspector заставил меня перейти с тестирования SQL-инъекции на поиск XXE. А все потому, что параметры отправляются в формате XML. Точка опорыXXE-инъекцияXML eXternal Entity (XXE) инъекция — это уязвимость в сервисах, которые поддерживают протоколы SOAP и XML-RPC и принимают входные данные в виде XML-документа. Стандарт XML поддерживает включение секции DTD, а секции эти, в свою очередь, могут подключать к документу дополнительные компоненты, так называемые внешние сущности. Перейти обратно к новости |