Перейти к содержанию

Upload Vulnerabilities


Основная задача - обход фильтров ограничивающих загрузку вредоносного ПО для RCE. Описание задания можно найти на TryHackme

Разведка и сканирование

  1. Через расширение Wapalyzzer определяем на чем вертится backend - node.js.
  2. На https://www.revshells.com/ находим node.js RCE сохраняем его в файл.
  3. Enumerate через gobuster:
    gobuster dir <http://jewel.uploadvulns.thm> -w /usr/share/wordlist/directory-2.3.small.txt
    
  4. Исследовав source код находим js функцию - фильтр которая принимает только .jpg и .jpeg
  5. Находим 3 директории: modules, admin - для запуска скриптов из директории modules, content - там хранятся загруженные файлы.

Модификация запросов

  1. Перехватив запросы через BurpSuite вырезаем функцию фильтр.
  2. Понимаем, что кроме фильтров на клиентской стороне, фильтры есть еще и на серверной, так как не удается загрузить файл с расширением .js
  3. Изменяем расширение на разрешенное > загружаем файл.

RCE

  1. Включаем listener
  2. Запускаем загруженный файл через <http://jewel.uploadvulns/admin/../RCE.js>

Прочие заметки

В процессе работы дополнительно обнаружилось то, что если изменить тип файла через редактирование Magic number обойти серверный фильтр получится, однако запустить файл нет, так как node.js не интерпретирует его как js код.