利用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即可下载
利用docx实现XXE_第1张图片

2、手动修改

与所有post-Office 2007文件格式一样,现代docx文件实际上只是XML文档的zip文件。 我们在打开docx文件时选择用winrar打开就会发现,docx文档就是一堆xml文件。
利用docx实现XXE_第2张图片

打开word的document.xml,可以看到填写的xml语句。
利用docx实现XXE_第3张图片
所以我们也可以先将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随机生成;

利用docx实现XXE_第4张图片

3、在xml语句中使用Collaborator生成的payload url;

4、查看访问记录。

利用docx实现XXE_第5张图片

响应包返回一串随机字符,说明成功进行了响应,目标服务器进行了外部的请求和交互,证明存在Blind XXE。

0x03 引发的思考

1、可以利用docx实现XXE,是不是Excel等文件同样存在该问题?

yes,you‘re right~~

xlsx可替换文件为: xl/workbook.xml
在第2、3行插入以下语句,再压缩改后缀名即可。

 ]>
&xxe;

可参考:https://blog.csdn.net/xu84557120/article/details/86530838

2、在文件上传处不仅要防御可执行文件、xss,也要注意允许docx、excel时防御xxe。

3、如何修复?

升级解析xml的框架包

4、审这个洞收获颇丰,以前只知道常规XXE攻击,也不了解docx文档,拓展思维~~

你可能感兴趣的:(#,WEB安全,python)