一、复现过程
影响版本
WPS Office 2023个人版<11.1.0.15120
WPS Office 2019企业版<11.8.2.12085
修改配合联动上线CS
-修改html中的shellcode(C#)
-修改docx中的指向连接URL
-修改hosts绑定执行域名规则
漏洞触发需让域名规则满足clientweb.docer.wps.cn.{xxxxx}wps.cn
1、客户机下载符合版本的wps,设置host文件使攻击机ip指定该域名 “clientweb.docer.wps.cn.cloudwps.cn”。
例:192.168.196.30 clientweb.docer.wps.cn.cloudwps.cn
2、在攻击机搭建一个web服务器 。
3、使用CS生成一个payload,并替换1.html内的shellcode,然后放到当前目录下(网上一个可以弹计算器的payload)。
4、再修改一下poc.DOCX,将原来的http://clientweb.docer.wps.cn.cloudwps.cn/1.html加个端口也就是上面起的那个端口。点击这个poc文档之后相当于去访问了自己服务器下的1.html,1.html内的shellcode又是刚刚cs生成的上线payload。
5、客户机点击刚刚poc.docx,可以看见受害者请求了我们的1.html。
6、回到CS这边发现已经上线了。
7、实战利用
购买***wps.cn的域名:由于wps的限制,当我们加载第三方网站的html时,wps会进行提醒,在WPS中,wps.cn的域名是在白名单中的,只要我们加载的资源在wps.cn的网站中,就不会有这个提示。
购买域名和vps后,需要把子域名 clientweb.docer.wps.cn.***wps.cn解析到购买的 vps上,尽量套一层cdn,再使用nginx反向代理到搭建的服务上,这里的子域名,必须为 clientweb.docer.wps.cn.***wps.cn,不然无法过白名单。
实战中:申请{xxxxx}wps.cn域名
增加解析clientweb.docer.wps.cn.{xxxxx}wps.cn ip上面
IP架设1.html网站服务,修改1.html替换上线shellcode