Категория > Новости > HTB Horizontall. Захватываем веб-сервер через уязвимости в Strapi и Laravel - «Новости»
HTB Horizontall. Захватываем веб-сервер через уязвимости в Strapi и Laravel - «Новости»9-02-2022, 00:00. Автор: Потап |
Hack The Box. Для победы нам понадобится проэксплуатировать ряд уязвимостей в Strapi, а затем повысить привилегии через уязвимость в Laravel 8. Погнали!warningПодключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками. РазведкаСканирование портовКак обычно, добавляем IP-адрес машины в
10.10.11.105 horizontall.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 (веб‑сервер Nginx 1.14.0). SSH пока что пропустим и направимся смотреть, что есть на веб‑сервере. Стартовая страница сайта horizontall.htb Там находим одностраничный сайт, который, на первый взгляд, использует какую‑то готовую технологию (то есть сайт не самописный). Сканирование веб-контентаПока что работать не с чем — нужно дальше искать точки входа. А ищут их в таких случаях при помощи перебора каталогов по словарю. Справка: сканирование веба c ffufОдно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB. Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
Набираем:
ffuf -uhttp://horizontall.htb/FUZZ -fc 403 -t 300 -wdirectory_2.3_medium.txt
Результат сканирования каталогов с помощью ffufНо ничего интересного не находим. Если не нашли каталоги и страницы, то стоит еще поискать поддомены. Чтобы обратиться к виртуальному хосту, нужно указать этот виртуальный хост в заголовке
ffuf -uhttp://horizontall.htb/-H 'Host: FUZZ.horizontall.htb' -t 300 -wsubdomains-top1million-110000.txt
Результат сканирования поддоменов с помощью ffufВ выводе отражаются вообще все варианты. Обратим внимание на код ответа 301 — перенаправление на другую страницу. Исключим его из вывода (опция
ffuf -uhttp://horizontall.htb/-H 'Host: FUZZ.horizontall.htb' -fc 301 -t 300 -wsubdomains-top1million-110000.txt
Результат сканирования поддоменов с помощью ffufТеперь в ответе находим всего два варианта:
10.10.11.105 www.horizontall.htb api-prod.horizontall.htb
Первый ведет на прежний сайт, а вот при обращении к Содержимое файла robots.txt Снова просканируем директории с ffuf, и на этот раз мы наконец находим дополнительный контент.
ffuf -uhttp://api-prod.horizontall.htb/FUZZ -fc 403 -t 300 -wdirectory_2.3_medium.txt
Результат сканирования каталогов с помощью ffuf Точка входаОтметим, что мы заодно нашли имена пользователей. Сканирование директорий на новом сайте дало две страницы. При обращении к Содержимое страницы reviews При обращении к странице Исходный код страницы admin Strapi CMSStrapi — это фреймворк для управления контентом, работающий на Node.js. Это так называемая headless CMS, она отвечает только за бэкенд (данные) и может взаимодействовать с любыми платформами представления, будь то сайты или приложения. Эта технология широко применяется, а значит, для нее будет несложно найти хорошо задокументированные эксплоиты, причем не в одном варианте. Искать можно при помощи Google, написав, к примеру, strapi exploit. Поиск эксплоитов Первые же ссылки дают нам эксплоиты для удаленного выполнения кода (RCE) и установки произвольного пароля. Пометка Unauthenticated сообщает о том, что баг сработает даже без авторизации. Эксплоит для установки пароля использует уязвимость CVE-2019-18818 — запросы на сброс пароля обрабатываются неправильно, что позволяет без авторизации изменить пароль пользователя. В коде эксплоита находим запрос проверки версии. Код эксплоита Перейти обратно к новости |