Bountyhunter (2022)

Ключевые моменты прохождения:
✅ Эксплуатируем XXE и открываем php файл через php wrapper на атакуемой машине
✅ Повышаем привилегии через кастомный скрипт, который можно запускать с привилегиями рут
Разведка
К db.php доступ ограничен. То есть его можно прочитать только на локалхосте. На / нету ничего интересного, форма не работает:

На portal.php есть ссылка на форму с Bounty Report System:

Тут есть 4 поля ввода:

Форма рабочая и можно перехватить запрос в BurpSuite:

Если расшифровать в URL, а потом расшифровать в base64, то получим XML:

Получаем юзера
Итак, чтобы правильно передать XML нужно сначала расшифровать в URL, а потом в Base64, отредактировать, и проделать те же действия только с шифрованием. Смотрим /etc/passwd:


Кроме рута, есть пользователь development, это в дальнейшем понадобится. Получить db.php по дефолтному пути(/var/www/html/) не получится напрямую, так как это PHP и он не отображается в браузере. Получится только через враппер php:

Вот сам пэйлоад:

Получив креды, можно вместо базы данных попробовать их для ssh:

Получаем рута

От рута мы можем запускать только скрипт ticketValidator.py:

Коротко говоря, что должно быть в файле:
Файл должен быть с расширением .md
В самом начале файла должна быть строка # Skytrain Inc
Вторая строка должна быть ## Ticket to <любое значение, например, world>
Третья строка должна быть Ticket Code:
Четвертая строка должна начинаться с ** , а также после этого должно быть число, которое при делении на 7 выдаст остаток 4, например, 18, 25, 32.
И потом через знак + нужно вставить пэйлоад, так как в скрипте происходит небезопасное использование функции eval().

Last updated
Was this helpful?