微軟365的"導出為PDF"功能近期被發現存在嚴重的本地文件包含(Local File Inclusion, LFI)漏洞,攻擊者可利用該漏洞獲取服務器端的敏感數據,包括配置文件、數據庫憑證和應用程序源代碼。
該漏洞由安全研究員Gianluca Baldi發現并報告給微軟,因其對企業安全的重大影響獲得了3000美元漏洞賞金。微軟隨后發布了修復補丁。
漏洞核心要點
- 微軟365的PDF導出功能存在LFI漏洞,允許攻擊者訪問服務器端敏感文件
- 惡意HTML標簽可將服務器文件內容嵌入轉換后的PDF中
- 可能泄露配置信息、憑證數據及跨租戶數據
- 微軟已通過漏洞賞金計劃修復該漏洞
LFI漏洞技術分析
該漏洞利用了微軟Graph API中未公開的HTML轉PDF功能特性。Gianluca Baldi在對客戶Web應用進行評估時發現,通過微軟365 SharePoint集成的文檔轉換功能可將文件轉為PDF格式。
微軟Graph API官方支持通過format參數將多種格式(如CSV、DOC、DOCX等)轉換為PDF,但未公開文檔顯示其也支持HTML轉PDF功能,這意外擴大了攻擊面。由于轉換過程缺乏適當的輸入驗證和文件路徑限制,攻擊者可利用路徑遍歷技術訪問服務器根目錄之外的文件。
攻擊者可在HTML內容中嵌入、和等惡意標簽,強制在PDF轉換過程中包含本地文件內容。具體攻擊分為三步:
- 通過微軟Graph API上傳惡意HTML文件
- 通過API端點請求將該文件轉換為PDF格式
- 下載包含嵌入本地文件內容的PDF
漏洞影響與修復措施
該LFI漏洞影響遠超普通文件泄露,可能暴露微軟機密信息、數據庫連接字符串、應用源代碼,在多租戶環境中還可能導致跨租戶數據泄露。微軟安全響應中心(MSRC)將其評為"重要"級別,反映了其在企業環境中可能導致重大數據泄露的風險。
微軟采取的修復措施包括:
- 限制PDF轉換過程中的HTML標簽處理
- 實施嚴格的文件路徑驗證以防止目錄遍歷攻擊
雖然微軟已修復該漏洞,但此事件凸顯了對未公開API行為和文件處理功能進行全面安全測試的重要性。