这周渗透测试过程中,遇见了个Excel造成的XXE,特来记录。
Excel文件有很多文件格式,例如.xlsx、xlsm(启用宏)、xlsb(二进制)、.xtlx(模板)、xltm(模板代码)等。2003及以前版本一般为:xls、xlt等。
而一个Excel文件其实也包含了许多部分,可以将一个以.xlsx为后缀的excel文件更改后缀名为.zip,然后进行解压缩,解压后的内容如下
![](https://img.haomeiwen.com/i20428239/86a90c17715a739b.png)
[Content_Types].xml:内容类型项
docProps文件夹:装有文档相关的属性,包含app.xml应用程序定义的文件属性、core.xml核心文件属性、custom.xml自定义属性
然后看一下_xl文件夹的内容:
![](https://img.haomeiwen.com/i20428239/601bb6536de8b320.png)
_rels:包关系,包含workbook.xml.rels,部分关系项
SharedStrings.xml:共享字符串表部分,用户输入内容
styles.xml:关于font、fill、border等相关样式定义
theme;主题,包含theme1.xml,表示工作表1的主题
workbook.xml:工作薄内容该书
worksheets:sheet相关样式,含有sheet1.xml,表明单元格与样式间的关系、内容等。
既然其中有XML文件,不难联想到XXE漏洞。
从dnslog上get subdomain,得到一个地址。将含有该地址的payload写入XML文件中,此处以Content_Types.xml为例。
![](https://img.haomeiwen.com/i20428239/a38cb089b7aafaae.png)
然后将刚才解压后的文件夹再压缩回去。
zip -r test.xslx *
得到一个名为test的Excel文件,然后将文件上传即可在dnslog中看到回显。
此处压缩时需要注意一个问题,如果时在MAC电脑下,直接将文件夹压缩改为xlsx的后缀,很可能不成功,因为解压后会发现是两个文件夹的嵌套文件。
网友评论