
微软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行为和文件处理功能进行全面安全测试的重要性。