您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何利用Excel進行XXE攻擊,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
某次測試中,在某系統后臺通過上傳Excel文件觸發XXE攻擊,這種姿勢利用成功比較少,故在此將測試過程記錄分享出來。
前言
Microsoft Office從2007版本引入了新的開放的XML文件格式,新的XML文件格式基于壓縮的ZIP文件格式規范,由許多部分組成。
我們可以將其解壓縮到特定的文件夾中來查看其包含的文件夾和文件,可以發現其中多數是描述工作簿數據、元數據、文檔信息的XML文件。
所以不正確的讀取2007版本Microsoft office格式文件也存在著XXE攻擊的可能性。
測試過程
測試客戶端與測試目標均處于純內網環境
測試目標IP:29.xx.xx.xxx
客戶端IP:10.xx.xx.xx
在人員管理>批量導入模塊,發現可以通過上傳Excel文件批量導入人員信息。
下載導入模板,模板是一個xls格式文件。
xls與xlsx格式不同,xls是一個特有的二進制格式,其核心結構是復合文檔類型的結構,而xlsx的核心結構是XML類型的結構,采用的是基于XML的壓縮方式。xls格式文件沒辦法插入Payload進行XXE攻擊。
由于系統給出的默認模板user.xls沒辦法利用,那我們嘗試自己新建一個xlsx格式文件進行上傳,是否可行呢?
制作插入Payload的xlsx文件
新建一個xlsx格式文件test.xlsx,解壓縮。
在[Content_Types].xml文件中插入Payload,如下圖。作用是從10.xx.xx.xx:8080上讀取eval.dtd文件。
在客戶端進行監聽
eval.dtd文件存放在客戶端,內容如下圖。作用是通過file協議讀取測試目標的/etc/hostname文件,并將讀取的結果通過HTTP請求的參數p帶出。
在客戶端的8080端口開啟Web服務,供測試目標下載eval.dtd文件。
并使用nc監聽本地8081端口,用于接收從測試目標讀取的/etc/hostname文件。
上傳
將插入Payload后的文件重新壓縮,再將壓縮包的后綴名修改為xlsx。
上傳該xlsx文件。
雖然回顯文件添加失敗,但是從客戶端Web服務日志中發現測試目標下載了evil.dtd文件,且nc成功在8081端口監聽到測試目標的/etc/hostname文件內容。
利用Excel進行XXE攻擊非常簡單,使用版本較低的第三方庫解析Excel文件時,基本都會引入XXE問題。
看完上述內容,你們對如何利用Excel進行XXE攻擊有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。