挖洞经验 | 看我如何发现价值$3000美金的Facebook视频缩略图信息泄露漏洞
字数 1496 2025-08-18 11:37:23
Facebook视频缩略图信息泄露漏洞挖掘与分析
漏洞概述
本教学文档详细分析了一个价值$3000美金的Facebook漏洞发现过程,该漏洞涉及Canvas广告功能中的视频缩略图信息泄露问题。通过不安全的对象引用(IDOR),攻击者能够访问并预览其他用户的私有视频内容缩略图,特别是在企业专用的Workplace应用环境中,可能导致敏感信息泄露。
漏洞发现环境
目标系统
- Facebook Canvas:Facebook的交互式全屏广告功能,允许整合图片、视频、文本和CTA按钮
- Workplace:Facebook的企业内部交流应用,具有权限限制的消息系统
测试工具
- Burpsuite:用于网络流量抓包和分析
- 多个测试账号:用于验证跨账号操作
漏洞发现过程
1. 目标选择与研究
- 阅读Facebook相关漏洞报告(writeup)
- 确定Facebook Canvas功能作为主要测试目标
- 了解Canvas功能的基本操作流程
2. 初步测试
- 创建Canvas内容并上传视频
- 使用Burpsuite捕获编辑操作的网络请求
- 分析捕获的POST请求:
POST /v2.11/{My_Page_ID}?access_token={My_page_Access_Token} HTTP/1.1
Host: graph.facebook.com
[...]
video_id=956034724555363
关键参数:video_id,标识上传的视频
3. IDOR漏洞验证
- 使用另一个测试账号上传视频,获取新的
video_id - 替换原始请求中的
video_id为其他账号的视频ID - 成功上传并关联其他账号的视频
- 验证删除操作同样存在IDOR问题
4. 扩展到Workplace环境
- 在Workplace测试账号发布受限视频
- 捕获Workplace视频的
video_id - 尝试在Canvas功能中使用该
video_id - 发现虽然无法直接预览,但能生成视频缩略图
5. 绕过预览限制
- 使用"发送到智能手机预览"功能
- 在移动设备上接收预览链接
- 成功查看受限视频的缩略图内容
漏洞原理分析
技术本质
- 不安全的直接对象引用(IDOR):系统仅通过
video_id标识视频,未验证用户权限 - 功能设计缺陷:Canvas预览功能未完全遵循Workplace的权限控制机制
影响范围
- 任何可获取
video_id的视频内容 - 特别严重的是Workplace中的企业内部视频
- 可能泄露敏感信息:会议内容、私人邮箱、商业机密等
漏洞利用场景
- 收集公开或半公开视频的
video_id - 通过Canvas功能关联这些视频
- 利用预览功能获取受限内容的缩略图
- 可能获取企业内部的敏感信息片段
漏洞修复建议
-
实施严格的权限验证:
- 检查用户是否有权访问指定的
video_id - 对不同来源的视频实施不同的访问控制
- 检查用户是否有权访问指定的
-
功能隔离:
- Workplace视频不应被Canvas功能引用
- 或者实施跨功能的统一权限检查
-
预览功能加固:
- 确保预览功能遵循原始内容的权限设置
- 对移动端预览实施相同的安全检查
漏洞报告时间线
- 2018.3.30 — 漏洞初报
- 2018.4.5 — 漏洞分类
- 2018.4.10 — 漏洞修复
- 2018.4.10 — 修复确认
- 2018.5.3 — 获得$3000奖金
经验总结
- 功能交互测试:测试不同功能间的交互往往能发现意外漏洞
- 跨环境测试:将发现的问题应用到不同环境(如Workplace)可能扩大影响
- 预览机制绕过:当直接访问受限时,考虑其他间接访问方式
- IDOR漏洞挖掘:关注所有对象引用参数,测试替换为其他用户的对象ID
测试方法论
- 全面记录所有请求参数
- 系统性地替换每个参数测试
- 验证正向和反向操作(如上传和删除)
- 跨账号、跨环境验证问题
- 尝试各种可能的绕过方式
通过这种系统化的测试方法,可以有效发现类似的信息泄露漏洞。