當前位置:
首頁 > 新聞 > 記一次利用BLIND OOB XXE漏洞獲取文件系統訪問許可權的測試

記一次利用BLIND OOB XXE漏洞獲取文件系統訪問許可權的測試

今天,我要和大家分享的是,我在某個邀請漏洞測試項目中,發現Bind OOB XXE漏洞的方法。由於涉及隱私,以下文章中涉及網站域名的部分我已作了編輯隱藏,敬請見諒。

漏洞分析


首先,與大多數挖洞者的探測模式一樣,我對目標網站進行了全方位的服務資產踩點識別,在此過程中,我發現了其中一個子域名網站比較有意思,於是,我就對它進行了目錄遍歷,然後,就發現了其名為/notifications的服務端。在BurpSuite中,對這個/notifications服務端的請求和響應如下圖所示:



在其響應內容中,我注意到,除了有XML內容外,還包含了一個XML SOAP語法體。由於沒有GET參數可供測試,因此我決定向該/notifications服務端發送一個簡單的,不指定任何內容類型(content-type)的POST請求進行探究,之後,在POST請求發出後,XML SOAP語法體不再出現,而且整個請求響應的代碼為200:


看來,貌似該Web應用端對POST請求能做出很好的響應,且不會拋出405的請求方法錯誤,所以我又構造定義了包含content-type: application/xml樣式的XML語法內容,用它來作POST請求,看看響應如何:



雖然這次的POST響應還是XML內容,但卻與上一次不同,這種響應表面上看似像服務端對GET請求的響應,而且,這次的響應內容中包含的標籤值不是上次的「TestRequestCalled」,而是「OK」。接著,我又發送了一個定義的JSON請求(content-type: application/json),來測試服務端的具體響應:


這一次,響應內容又是空的,和未指定任何內容類型的簡單POST請求響應一樣,由此,我推斷該服務端能正常處理XML數據,這樣一來,我想嘗試利用BLIND XXE攻擊方式來觸發其漏洞。我通過在自己VPS上架設了一個dtd文件,然後利用外部實體引用途徑來測試其XML解析機制,幸運的是,最終部署在我VPS上的這個外部dtd文件實體被成功解析引用,以下是其請求內容和最後的解析結果:



xxe-ftp-server.rb腳本應用


由於該系統使用了java框架,而俄羅斯OnSec實驗室曾針對Java程序的XXE-OOB攻擊作出了相關研究,並給出相應的payload,以及一個通過ftp服務讀取系統目錄的漏洞利用腳本xxe-ftp-server.rb,運行該腳本後,8088埠作為http服務端負責獲取OOB攻擊payload,而8077埠用於ftp連接服務,最終能成功讀取到目標系統目錄:


儘管最後該漏洞被確認為一個重複報,但我還是想把它分享出來,我自己也從中學到一些判斷服務端應用的經驗。


一些有用的XXE Payload



*參考來源:hawkinsecurity,FreeBuf小編clouds編譯,轉載請註明來自FreeBuf.COM



喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

FB精品公開課 | HackPanda帶你玩轉無線遙控信號分析
Harpoon:OSINT威脅情報工具

TAG:FreeBuf |