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:

Коротко говоря, что должно быть в файле:

  1. Файл должен быть с расширением .md

  2. В самом начале файла должна быть строка # Skytrain Inc

  3. Вторая строка должна быть ## Ticket to <любое значение, например, world>

  4. Третья строка должна быть Ticket Code:

  5. Четвертая строка должна начинаться с ** , а также после этого должно быть число, которое при делении на 7 выдаст остаток 4, например, 18, 25, 32.

  6. И потом через знак + нужно вставить пэйлоад, так как в скрипте происходит небезопасное использование функции eval().

Last updated

Was this helpful?