利用docx实现XXE
0x00 前言
源于审核hackerone漏洞时的学习。
好久没更新博客啦,都是存的本地。。
立个flag:找个时间脱敏整理下~~
0x01 创建poc docx
1、借助网站生成docx
http://206.189.182.59:4567/overwrite
步骤:
(1)本地新建一个正常docx文档,选择
(2)填写要替换的文件,word/document.xml
(3)填写XML语句
(4)点击Build即可下载
2、手动修改
与所有post-Office 2007文件格式一样,现代docx文件实际上只是XML文档的zip文件。 我们在打开docx文件时选择用winrar打开就会发现,docx文档就是一堆xml文件。
打开word的document.xml,可以看到填写的xml语句。
所以我们也可以先将docx文档后缀名改为zip,解压后修改word/document.xml。
0x02 利用Burp Collaborator插件证明
由于是Blind XXE,我们可以借助其他工具(个人服务器、插件)来证明漏洞存在,这里我使用Burp Suite的Burp Collaborator插件来证明。
插件安装步骤在此不做介绍,直接看如何使用。
1、点击Burp->Burp Collaborator client打开 collaborator 插件;
2、点击Copy to clipboard复制payload url,该url随机生成;
3、在xml语句中使用Collaborator生成的payload url;
4、查看访问记录。
响应包返回一串随机字符,说明成功进行了响应,目标服务器进行了外部的请求和交互,证明存在Blind XXE。
0x03 引发的思考
1、可以利用docx实现XXE,是不是Excel等文件同样存在该问题?
yes,you‘re right~~
xlsx可替换文件为: xl/workbook.xml
可参考:https://blog.csdn.net/xu84557120/article/details/86530838
2、在文件上传处不仅要防御可执行文件、xss,也要注意允许docx、excel时防御xxe。
3、如何修复?
升级解析xml的框架包
4、审这个洞收获颇丰,以前只知道常规XXE攻击,也不了解docx文档,拓展思维~~