Upload Vulnerabilities
Основная задача - обход фильтров ограничивающих загрузку вредоносного ПО для RCE. Описание задания можно найти на TryHackme
Разведка и сканирование
- Через расширение Wapalyzzer определяем на чем вертится backend -
node.js
. - На https://www.revshells.com/ находим
node.js
RCE сохраняем его в файл. - Enumerate через gobuster:
- Исследовав source код находим
js
функцию - фильтр которая принимает только.jpg
и.jpeg
- Находим 3 директории:
modules
,admin
- для запуска скриптов из директорииmodules
,content
- там хранятся загруженные файлы.
Модификация запросов
- Перехватив запросы через BurpSuite вырезаем функцию фильтр.
- Понимаем, что кроме фильтров на клиентской стороне, фильтры есть еще и на серверной, так как не удается загрузить файл с расширением
.js
- Изменяем расширение на разрешенное > загружаем файл.
RCE
- Включаем listener
- Запускаем загруженный файл через
<http://jewel.uploadvulns/admin/../RCE.js>
Прочие заметки
В процессе работы дополнительно обнаружилось то, что если изменить тип файла через редактирование Magic number обойти серверный фильтр получится, однако запустить файл нет, так как node.js
не интерпретирует его как js код.