Office与WPS支持Web控件加载HTML、CSS、JavaScript,WPS 11.1.0.12300中内嵌了没开沙盒的Chromium 87.0.4280.20,调用内嵌浏览器渲染远程HTML时执行JS,触发V8代码执行漏洞。

如何触发远程加载

原POC在大段文字中间位置,放了一个跟换行符号大小接近的动态表格,用于拉起Web控件加载与渲染远程HTML。

如果手动调整长宽为0,可以实现默认状态下完全不可见。

但仍能通过开发工具->XML映射窗格->选择窗格发现蛛丝马迹。

为何有域名限制

通过Procmon监控,发现wps.exe调用了WPS Office/11.1.0.12300/office6/addons/kwebextensionlist/kwebextensionlist.cfg

根据同目录下其他文件可以知道,动态表格的远程加载存在白名单限制:

1
2
3
4
[General]
trustedDomains=wps.cn|wpscdn.cn
[dschart]
trustedHosts=clientweb.docer.wps.cn

进一步可以定位到WPS Office/11.1.0.12300/office6/kso.dll中存在关键字,但IDA好久都没解析完这个50兆的DLL。

黑盒测试可知,只要满足*wps.cn|*wpscdn.cn规则的域名均被视为白名单,支持URL解码。尝试了结合一个或多个@#? /\&\r\n等符号绕过没有成功,找了官方某个子域站的上传功能,居然禁了html真离谱啊。

V8 RCE

有了WPS子进程和Chrome的背书,直接替换为CS的原生shellcode也不会被defender杀。

注意事项

文档内会记录编辑者的wps帐号、Windows用户名。

参考资料

  1. WPS历史版本下载

  2. Office Add-ins platform overview

  3. 加载项概述