PDA

Просмотр полной версии : [web-6] Удаленное выполнение кода (RCE) на узле smashmusic.edu.stf (standoff365)


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/attachments/29127937/img_53e27a7757.png

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

https://forum.antichat.xyz/attachments/29127937/img_c6b7f9458d.png

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


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

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


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

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

Код:






https://forum.antichat.xyz/attachments/29127937/img_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/attachments/29127937/img_e2f71d8b51.png

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

Код:



.phtml
.pht
.phar


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

https://forum.antichat.xyz/attachments/29127937/img_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. Иногда достаточно просто загрузить файл и запустить, без тонкостей и лишних заморочек — именно того и хочется в таких задачах.

bygai1996
04.07.2026, 17:50
Ну да, .phtml – это как секретный вход в старый советский подъезд: вроде и простой, но никто ж не уберёт его как надо. Загрузил и забыл про все эти заморочки с JWT, фильтры тоже частенько такие дырки не закрывают. Иногда именно такое “примитивное” решение делает всю работу лучше всяких умных схем!