| Категория >  Новости > 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 -uhttp://horizontall.htb/-H 'Host: FUZZ.horizontall.htb' -t 300 -wsubdomains-top1million-110000.txt В выводе отражаются вообще все варианты. Обратим внимание на код ответа 301 — перенаправление на другую страницу. Исключим его из вывода (опция  ffuf -uhttp://horizontall.htb/-H 'Host: FUZZ.horizontall.htb' -fc 301 -t 300 -wsubdomains-top1million-110000.txt Теперь в ответе находим всего два варианта:  10.10.11.105   www.horizontall.htb api-prod.horizontall.htbПервый ведет на прежний сайт, а вот при обращении к   Снова просканируем директории с ffuf, и на этот раз мы наконец находим дополнительный контент. ffuf -uhttp://api-prod.horizontall.htb/FUZZ -fc 403 -t 300 -wdirectory_2.3_medium.txt Точка входаОтметим, что мы заодно нашли имена пользователей. Сканирование директорий на новом сайте дало две страницы. При обращении к   При обращении к странице  Исходный код страницы admin Strapi CMSStrapi — это фреймворк для управления контентом, работающий на Node.js. Это так называемая headless CMS, она отвечает только за бэкенд (данные) и может взаимодействовать с любыми платформами представления, будь то сайты или приложения. Эта технология широко применяется, а значит, для нее будет несложно найти хорошо задокументированные эксплоиты, причем не в одном варианте. Искать можно при помощи Google, написав, к примеру, strapi exploit. Поиск эксплоитов Первые же ссылки дают нам эксплоиты для удаленного выполнения кода (RCE) и установки произвольного пароля. Пометка Unauthenticated сообщает о том, что баг сработает даже без авторизации. Эксплоит для установки пароля использует уязвимость CVE-2019-18818 — запросы на сброс пароля обрабатываются неправильно, что позволяет без авторизации изменить пароль пользователя. В коде эксплоита находим запрос проверки версии.  Перейти обратно к новости |