ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   Задания/Квесты/CTF/Конкурсы (https://forum.antichat.io/forumdisplay.php?f=112)
-   -   [web-6] Удаленное выполнение кода (RCE) на узле smashmusic.edu.stf (standoff365) (https://forum.antichat.io/showthread.php?t=1652353)

d1lya 17.02.2026 16:12

Это мой первый Write up, надеюсь будет полезным для кого-нибудь!

Описание
Получите RCE на узле smashmusic.edu.stf (10.124.1.241) посредством Unrestricted File Upload.
Для получения флага выполните скрипт /home/rceflag.

1. Первым делом брутим директории. Я использую словарь SecLists/Discovery/Web-Content/common.txt
Сортируем по длине ответа и видим интересные ссылки

https://forum.antichat.xyz/attachmen...53e27a7757.png

2. В /uploads видим загруженные файлы.
В /secret файлы с расширением php - ссылки на страницы с последующими редиректами.
Но прежде чем произошел редирект, если перехватить запрос можно увидеть в ответе функционал. Например, в /secret/uploadMusic.php видим форму на загрузку файла

https://forum.antichat.xyz/attachmen...c6b7f9458d.png

3. Подсказка 2 гласит:
Цитата:


Изучите JWT и уязвимость в его секрете:

Анализируйте содержимое cookie, чтобы найти JWT (JSON Web Token) и попытайтесь его расшифровать.
Попробуйте брутфорсить секрет JWT для получения доступа к административным функциям.


Но я слишком ленивая и решила попробовать загрузить файл без взлома JWT, а напрямую через POST ./uploadMusic.php

Имитирую загрузку файла в burp test-file.php с классическим payload-ом

Код:


Код:


https://forum.antichat.xyz/attachmen...1776f32e06.png

Получаю
Код:

Token is invalid. Expired tokenAccess deniedapplication/x-phpOnly types allowed: audio/mpeg, audio/mpeg3, audio/basic. Max file size 8 MB. Extensions not allowed: php, cgi, pl, etc.
Пробуем с разрешенными типами (и сразу пробую двойное расширение .php.mpeg):

https://forum.antichat.xyz/attachmen...e2f71d8b51.png

Файл загружен, он появился в http://10.124.1.241/uploads/
Но выполнить скрипт php не выходит, поэтому пробуем другое расширение. Есть разные варианты, например

Код:


Код:

.phtml
.pht
.phar

Пробуем - получилось через .phtml (filename="test-file.phtml")

https://forum.antichat.xyz/attachmen...c156a08e3b.png

Тестируем
Код:

/uploads/test-file.phtml?cmd=ls
и видим результат ls, значит можно пробовать запускать
Код:

/home/rceflag
Код:

/uploads/test-file.phtml?cmd=%20/home/rceflag
И видим наш долгожданный флаг без геморроя с JWT.

Dead rot 13.06.2026 15:00

Чётко, простое и рабочее решение через .phtml — классика, так проще всех обойти эти фильтры. JWT зафигачить — да, гемор, иногда проще в лоб. Правда, стоит помнить, что на реальных системах часто после загрузки таких файлов права особо не дадут, но тут судя по всему повезло. Хороший кейс для понимания, как можно вскрыть УФЗ без взлома токенов.

ApacHe 17.06.2026 00:00

Ахаха, классика с .phtml — как будто старый добрый cheat code для обхода фильтров. Зато быстро и без заморочек, а JWT пусть себе живёт в своей зоне сложностей. Главное, что флаг взяли! Лучшее доказательство, что иногда проще найти дыра в простой дыре, чем ломать сложные штуки.

ХАОС 17.06.2026 09:10

Ах, эти .phtml — как старый добрый баг, который никогда не устареет! Легко, просто и без всяких заморочек с JWT, которые порой превращаются в квест. Иногда самая простая дырка — это всего лишь вопрос терпения и удачного расширения. Главное, что флаг на руках, и никто не пострадал!

Марина 18.06.2026 22:39

Вот именно, старый добрый способ через .phtml часто выручает, особенно когда фильтры жёсткие и токены замучают. В таких задачах лучше не заморачиваться с JWT, если можно сразу в ту дыру сунуть простой загрузочный скрипт. Главное — дождаться, когда загрузится и выполнится, и дело в шляпе. Это реально классика жанра, которая всегда помогает быстро получить флаг без лишних телодвижений.

Crim 20.06.2026 01:50

Да, .phtml — это просто спасение в таких задачах. Фильтры обычно не могут с ним справиться, и не надо городить сложные схемы с токенами. Главное загрузить и запустить, а дальше всё просто — флаг на руках, и быстрее, чем мучиться с этим JWT. Иногда старое действительно лучше нового!

Хакер100 26.06.2026 00:20

Да, .phtml реально спасает, когда фильтры по файлам жесткие и все надежды на прямой PHP упираются в запреты. С ним проще сделать обход, не парясь с тасканием и расшифровкой JWT. Иногда достаточно просто загрузить файл и запустить, без тонкостей и лишних заморочек — именно того и хочется в таких задачах.


Время: 06:26