hernidla
New member
- 16.02.2026
- 1
- 5
Это мой первый Write up, надеюсь будет полезным для кого-нибудь!
Описание
Получите RCE на узле smashmusic.edu.stf (10.124.1.241) посредством Unrestricted File Upload.
Для получения флага выполните скрипт /home/rceflag.
1. Первым делом брутим директории. Я использую словарь SecLists/Discovery/Web-Content/common.txt
Сортируем по длине ответа и видим интересные ссылки
2. В /uploads видим загруженные файлы.
В /secret файлы с расширением php - ссылки на страницы с последующими редиректами.
Но прежде чем произошел редирект, если перехватить запрос можно увидеть в ответе функционал. Например, в /secret/uploadMusic.php видим форму на загрузку файла
3. Подсказка 2 гласит:
Имитирую загрузку файла в burp test-file.php с классическим payload-ом
Получаю
Пробуем с разрешенными типами (и сразу пробую двойное расширение .php.mpeg):
Файл загружен, он появился в
Но выполнить скрипт php не выходит, поэтому пробуем другое расширение. Есть разные варианты, например
Пробуем - получилось через .phtml (filename="test-file.phtml")
Тестируем
и видим результат ls, значит можно пробовать запускать
И видим наш долгожданный флаг без геморроя с JWT.
Описание
Получите RCE на узле smashmusic.edu.stf (10.124.1.241) посредством Unrestricted File Upload.
Для получения флага выполните скрипт /home/rceflag.
1. Первым делом брутим директории. Я использую словарь SecLists/Discovery/Web-Content/common.txt
Сортируем по длине ответа и видим интересные ссылки
2. В /uploads видим загруженные файлы.
В /secret файлы с расширением php - ссылки на страницы с последующими редиректами.
Но прежде чем произошел редирект, если перехватить запрос можно увидеть в ответе функционал. Например, в /secret/uploadMusic.php видим форму на загрузку файла
3. Подсказка 2 гласит:
Но я слишком ленивая и решила попробовать загрузить файл без взлома JWT, а напрямую через POST ./uploadMusic.phpИзучите JWT и уязвимость в его секрете:
Анализируйте содержимое cookie, чтобы найти JWT (JSON Web Token) и попытайтесь его расшифровать.
Попробуйте брутфорсить секрет JWT для получения доступа к административным функциям.
Имитирую загрузку файла в burp test-file.php с классическим payload-ом
Код:
<?php system($_GET['cmd']); ?>
Получаю
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):
Файл загружен, он появился в
Ссылка скрыта от гостей
Но выполнить скрипт php не выходит, поэтому пробуем другое расширение. Есть разные варианты, например
Код:
.phtml
.pht
.phar
Пробуем - получилось через .phtml (filename="test-file.phtml")
Тестируем
/uploads/test-file.phtml?cmd=lsи видим результат ls, значит можно пробовать запускать
/home/rceflag/uploads/test-file.phtml?cmd=%20/home/rceflagИ видим наш долгожданный флаг без геморроя с JWT.