挖洞经验 | Facebook系统HTML转PDF文档可能引起的RCE漏洞
字数 1260 2025-08-18 11:39:00

Facebook系统HTML转PDF文档RCE漏洞分析

漏洞概述

本漏洞存在于Facebook旗下Workplace by Facebook服务的法律协议签署系统中,攻击者能够通过HTML注入在服务端实现远程代码执行(RCE)。漏洞核心在于HTML转PDF过程中对用户输入处理不当,结合邮件伪造漏洞可形成完整的攻击链。

漏洞细节

1. 漏洞入口

  • 当用户创建Workplace by Facebook账号时,会收到来自legal_noreply@fb.com的确认邮件
  • 邮件中包含一个带有token的协议签署URL:
    https://legal.tapprd.thefacebook.com/tapprd/Portal/ShowWorkFlow/AnonymousShowStage?token=
    
  • 该页面包含用户信息输入区域(姓名、地址、邮箱、职业等)

2. HTML注入点

  • 正常情况下,Web应用会对所有输入文本执行HTML编码
  • 关键漏洞:服务端在将内容转换为PDF时会对HTML编码进行解码
  • 攻击者可利用此特性注入恶意HTML代码

3. HTML转PDF漏洞利用

攻击者发现可以通过file://协议的IFRAME元素进行内部网络探测:

  1. 使用IFRAME扫描Web应用内部网络

    • 可识别内部IP地址
    • 可探测开放/关闭端口
  2. 发现的三种提权至RCE的方法:

    • 利用另一个漏洞获取Web应用内部系统路径,提取web.config文件获取敏感配置
    • 通过内部网络扫描发现存在漏洞的WebLogic服务器
    • 使用about://协议格式获取IE浏览器信息,推测系统使用Windows API接口,可嵌入针对IE的Payload

4. 邮件伪造漏洞

  • 漏洞URL:
    https://legal.tapprd.thefacebook.com/tapprd/Portal/ShowWorkFlow/AnonymousEmbed/XXXXXXXXXXXXX
    
  • 漏洞表现:
    • 可任意指定收件人邮箱地址和姓名
    • 收件人姓名字段未过滤HTML注入
    • 可编辑邮件正文内容
  • 结合HTML转PDF漏洞可形成完整攻击链

漏洞复现步骤

  1. 获取协议签署链接(通过正常注册流程或社会工程学)
  2. 在输入字段注入恶意HTML代码(需绕过前端过滤)
  3. 利用file://协议探测内部网络
  4. 根据探测结果选择提权方法:
    • 获取web.config文件
    • 攻击内部WebLogic服务器
    • 使用IE特定Payload
  5. 结合邮件伪造漏洞扩大攻击范围

防御措施

  1. 输入处理:

    • 对所有用户输入进行严格的HTML编码
    • 在PDF转换前不应解码用户输入内容
  2. PDF转换安全:

    • 限制PDF转换器可加载的资源(禁用file://等协议)
    • 使用沙箱环境进行PDF转换
  3. 邮件系统:

    • 实现严格的发件人验证
    • 对所有动态生成的邮件内容进行过滤
  4. 网络隔离:

    • 关键服务应与内部网络隔离
    • 实施严格的网络访问控制

时间线

  • 2019.4.7 漏洞初报
  • 2019.4.10 Facebook确认
  • 2019.5.1 Facebook要求更多验证资料
  • 2019.5.21 Facebook确认漏洞有效性
  • 2019.6.18 Facebook修复漏洞
  • 2019.7.3 Facebook发放1000$赏金

经验总结

  1. 服务端文件转换服务是常见攻击面,需特别关注
  2. 链式漏洞利用可显著提升攻击效果
  3. 第三方系统集成需进行同等安全评估
  4. 内部网络探测是提权的重要前置步骤
  5. 邮件系统是攻击传播的理想媒介
Facebook系统HTML转PDF文档RCE漏洞分析 漏洞概述 本漏洞存在于Facebook旗下Workplace by Facebook服务的法律协议签署系统中,攻击者能够通过HTML注入在服务端实现远程代码执行(RCE)。漏洞核心在于HTML转PDF过程中对用户输入处理不当,结合邮件伪造漏洞可形成完整的攻击链。 漏洞细节 1. 漏洞入口 当用户创建Workplace by Facebook账号时,会收到来自 legal_noreply@fb.com 的确认邮件 邮件中包含一个带有token的协议签署URL: 该页面包含用户信息输入区域(姓名、地址、邮箱、职业等) 2. HTML注入点 正常情况下,Web应用会对所有输入文本执行HTML编码 关键漏洞:服务端在将内容转换为PDF时会对HTML编码进行解码 攻击者可利用此特性注入恶意HTML代码 3. HTML转PDF漏洞利用 攻击者发现可以通过 file:// 协议的IFRAME元素进行内部网络探测: 使用IFRAME扫描Web应用内部网络 可识别内部IP地址 可探测开放/关闭端口 发现的三种提权至RCE的方法: 利用另一个漏洞获取Web应用内部系统路径,提取 web.config 文件获取敏感配置 通过内部网络扫描发现存在漏洞的WebLogic服务器 使用 about:// 协议格式获取IE浏览器信息,推测系统使用Windows API接口,可嵌入针对IE的Payload 4. 邮件伪造漏洞 漏洞URL: 漏洞表现: 可任意指定收件人邮箱地址和姓名 收件人姓名字段未过滤HTML注入 可编辑邮件正文内容 结合HTML转PDF漏洞可形成完整攻击链 漏洞复现步骤 获取协议签署链接(通过正常注册流程或社会工程学) 在输入字段注入恶意HTML代码(需绕过前端过滤) 利用 file:// 协议探测内部网络 根据探测结果选择提权方法: 获取web.config文件 攻击内部WebLogic服务器 使用IE特定Payload 结合邮件伪造漏洞扩大攻击范围 防御措施 输入处理: 对所有用户输入进行严格的HTML编码 在PDF转换前不应解码用户输入内容 PDF转换安全: 限制PDF转换器可加载的资源(禁用file://等协议) 使用沙箱环境进行PDF转换 邮件系统: 实现严格的发件人验证 对所有动态生成的邮件内容进行过滤 网络隔离: 关键服务应与内部网络隔离 实施严格的网络访问控制 时间线 2019.4.7 漏洞初报 2019.4.10 Facebook确认 2019.5.1 Facebook要求更多验证资料 2019.5.21 Facebook确认漏洞有效性 2019.6.18 Facebook修复漏洞 2019.7.3 Facebook发放1000$赏金 经验总结 服务端文件转换服务是常见攻击面,需特别关注 链式漏洞利用可显著提升攻击效果 第三方系统集成需进行同等安全评估 内部网络探测是提权的重要前置步骤 邮件系统是攻击传播的理想媒介