0x00 前言
源於審核hackerone漏洞時的學習。
好久沒更新博客啦,都是存的本地。。
立個flag:找個時間脫敏整理下~~
0x01 創建poc docx
1、借助網站生成docx
http://206.189.182.59:4567/overwrite
步驟:
(1)本地新建一個正常docx文檔,選擇
(2)填寫要替換的文件,word/document.xml
(3)填寫XML語句
(4)點擊Build即可下載
2、手動修改
與所有post-Office 2007文件格式一樣,現代docx文件實際上只是XML文檔的zip文件。 我們在打開docx文件時選擇用winrar打開就會發現,docx文檔就是一堆xml文件。
打開word的document.xml,可以看到填寫的xml語句。
所以我們也可以先將docx文檔后綴名改為zip,解壓后修改word/document.xml。
0x02 利用Burp Collaborator插件證明
由於是Blind XXE,我們可以借助其他工具(個人服務器、插件)來證明漏洞存在,這里我使用Burp Suite的Burp Collaborator插件來證明。
插件安裝步驟在此不做介紹,直接看如何使用。
1、點擊Burp->Burp Collaborator client打開 collaborator 插件;
2、點擊Copy to clipboard復制payload url,該url隨機生成;
3、在xml語句中使用Collaborator生成的payload url;
4、查看訪問記錄。
響應包返回一串隨機字符,說明成功進行了響應,目標服務器進行了外部的請求和交互,證明存在Blind XXE。
0x03 引發的思考
1、可以利用docx實現XXE,是不是Excel等文件同樣存在該問題?
yes,you‘re right~~
xlsx可替換文件為: xl/workbook.xml
可參考:https://blog.csdn.net/xu84557120/article/details/86530838
2、在文件上傳處不僅要防御可執行文件、xss,也要注意允許docx、excel時防御xxe。
3、如何修復?
升級解析xml的框架包
4、審這個洞收獲頗豐,以前只知道常規XXE攻擊,也不了解docx文檔,拓展思維~~