紅隊和漏洞挖掘中那些關于"文檔"的妙用(下)
0x01 PDF在漏洞挖掘和紅隊中的一些攻擊姿勢
1.使用PDF進行XSS攻擊
一個比較新的攻擊點,它的攻擊場景其實不算常見,如果有某些站點允許上傳PDF、能在線解析PDF并且用戶能夠在線瀏覽該PDF文件,就有可能存在PDF XSS攻擊,要實現這個攻擊,我們需要制作一個惡意PDF文件,方法如下:
首先找一個PDF編輯器,本文使用“迅捷PDF編輯器“,其它編輯器的操作方法應該也大同小異。點擊左上角文件-新建文檔-從空白頁…

單機左側的“頁面“標簽,選擇與之對應的頁面縮略圖,然后從選項下拉菜單中選擇“頁面屬性”命令

也可以在這個位置找到

在“頁面屬性”對話框單擊“動作”標簽,再從“選擇動作”下拉菜單中選擇“運行 JavaScript”命令,然后單擊【添加】按鈕,彈出 JavaScript 編輯器對話框

在彈出的“JavaScript 編輯器”對話框中輸入代碼:
app.alert(‘XSS’);

保存即可,我們試著用瀏覽器打開這個惡意PDF文件

成功彈窗
2.Adobe Acrobat Reader RCE漏洞
與Word和Excel同樣的,PDF的查看器本身也存在一些漏洞,如果能夠構造惡意PDF,就能夠對這些漏洞進行利用。
比方說CVE-2021-21017就是這樣一個漏洞
Github鏈接:https://github.com/ZeusBox/CVE-2021-21017
0X02 使用Word文檔進行XXE攻擊
1.了解一下DOCX文檔的構造
使用DOCX文檔進行XXE攻擊,看上去似乎非常高級,其實它的原理是非常簡單的。DOCX文檔其實就是把一堆的XML文件按照一定的格式壓縮在一起。在上篇文章中我們提到了一種遠程加載文檔模板進行攻擊的方法,那個姿勢的操作過程中,我們就有對settings.xml.rels文件中的內容進行編輯。事實上,你只需要把DOCX文檔的后綴改為ZIP,并解壓出其中的文件,就可以清晰地看到DOCX文檔的“真實面貌“。

如下圖,可以清晰的看到DOCX文檔的實際構成

那么既然是XML文檔,我們知道XXE攻擊的實質就是后端在處理XML相關數據的時候也執行了我們的惡意XML語句,那么有沒有一種可能,我們把惡意語句嵌入到DOCX文檔中的某些XML文件里,設法讓目標網站觸發呢?答案是可行的。
這個姿勢的關鍵點在于,既然DOCX文檔是由XML壓縮而成的,那么網站的一些功能,比方說在線閱讀DOCX文檔,在線解析DOCX文檔等等功能,一定繞不開解析DOCX文檔里的XML文件。所以那種網盤在線閱讀DOCX文檔、網站在線解析DOCX文檔、郵件系統傳輸DOCX文檔等等功能都有可能存在這類漏洞,平時漏洞挖掘的時候記得多留個心眼。
下面就開始正式介紹利用的姿勢
第一個回顯位置
這個位置ord/document.xml文件中
把它打開后發現是這樣的

第一個位點在文檔聲明的下方,也就是這個位置

可以嵌入惡意代碼,比方說

隨后將這個壓縮包的后綴名修改為DOCX,就得到了一個用于XXE攻擊的DOCX文檔
第二個回顯位置
這個姿勢學習自先知社區的“你回來嗎”師傅。這位師傅發現了在線瀏覽或者轉換DOCX文檔的功能處還有一個回顯點,即文章的頁碼。
這個功能點所處的位置是docProps/app.xml

可以清楚的看到控制頁碼的標簽是

在Pages標簽中嵌入XXE攻擊語句即可

隨后將這個壓縮包的后綴名修改為DOCX,就得到了一個用于XXE攻擊的DOCX文檔
2.利用Word OLE功能進行XXE攻擊
這個姿勢同樣學習自先知社區的“你回來嗎”師傅。這個手法主要用于攻擊Libreoffice,Libreoffice是很多Word轉PDF網站的常客,實戰情況下有機會遇到。
按照上篇OLE+LNK釣魚的姿勢,先創建一個OLE對象先。

接下來這一步原文的師傅是用MAC上的Word來實現的,我一開始復現的時候一時半會還沒找到Windows環境下在哪有這個功能點,細看了一波終于被我找到了。

這個文件名的絕對路徑可以自己填,插入好之后將這個文檔先保存為.odt格式

然后老樣子,把它后綴改為.zip格式再修改其中的XML文件,在content.xml中找到第一個xlink:href,其中的路徑修改為你想要讀的文件

最后把它重新改成Docx格式即可
0X03 使用Excel文檔來進行XXE攻擊
1.相似的原理&相似的輸出位點
使用Excel文檔進行XXE攻擊的原理基本與Word文檔進行攻擊的原理一致,Excel文檔也是由XML文件按照一定的格式壓縮在一起的,在這里就不過多贅述了。它們的輸出位點也非常相似。把xlxs文檔后綴改為zip,找到xl/workbook.xml文件。
其中的內容為:

同樣在XML聲明行的下面有一個輸出位點

填入惡意語句

將壓縮包后綴重新改回xlxs文件即可得到一個惡意Excel文件。
0x04 文檔XXE實戰案例
只給出如何制作惡意XXE文檔自然是不夠的,如果不清楚什么地方可能出現基于文檔的XXE漏洞,那么會做文檔也是白搭。但是XXE漏洞本來是挺少見的漏洞類型,利用文檔來執行XXE攻擊就更是冷門,本人最近也沒有挖到過類似的漏洞,所以本文會列舉幾個烏云里的文檔XXE攻擊案例幫助各位學習。
1.文件云在線文檔預覽處可觸發
顧名思義,這個觸發點位于那些網盤、文件云的“在線預覽”功能,上傳我們制作好的惡意文檔,并在線瀏覽該惡意文檔,就可以看到XXE成功觸發

2.郵箱附件在線預覽
無圖,但是姿勢無非就是在線預覽

