挖洞经验 | Facebook全平台聊天应用中的用户发送附件泄露漏洞($15,000)
字数 1235 2025-08-18 11:38:08
Facebook全平台聊天应用附件泄露漏洞分析报告
漏洞概述
漏洞类型:IDOR(不安全的直接对象引用)导致的附件泄露
影响范围:Facebook全平台聊天应用(包括Messenger、Portal和Workplace)
漏洞危害:攻击者可获取其他用户在聊天中发送的任何附件(图片、文档、视频、音频)
漏洞奖励:$15,000(Facebook漏洞赏金计划)
发现时间:2019年1月22日
修复时间:2019年2月13日
漏洞发现过程
1. 目标选择
- 测试目标:Facebook视频聊天设备Portal官网(portal.facebook.com)
- 关注点:新加入的"客户支持聊天机器人(Support Bot)"功能
2. 功能测试
- 发现Support Bot支持附件上传功能(图片、视频、文档等)
- 使用Burpsuite对上传操作进行抓包分析
3. 关键请求分析
捕获到的关键POST请求:
POST /messaging/send/ HTTP/1.1
Host: www.facebook.com
client=mercury&action_type=ma-type:user-generated-message&body=&ephemeral_ttl_mode=0&has_attachment=trueℑℑ_ids[0]=123&message_id=111&offline_threading_id=123
4. 关键参数
image_ids[0]:上传图片的唯一标识符- 推测:通过修改此ID可能访问其他用户的附件
漏洞验证
测试方法
- 创建两个测试账户(attacker和victim)
- 使用victim账户上传附件
- 使用attacker账户尝试通过修改
image_ids[0]访问victim的附件
验证结果
- 成功获取其他用户通过Portal聊天机器人发送的任何附件
- 影响范围扩展到所有Facebook聊天架构应用:
- Facebook主聊天系统
- Messenger
- Portal聊天应用
- Workplace聊天应用
特殊发现
- 在Burpsuite的Proxy代理中可成功复现
- 发送到Repeater模块进行重放攻击会返回未知错误
漏洞利用场景
潜在攻击方式
- 编写脚本工具暴力枚举附件ID:
- Images IDs
- Video IDs
- Files IDs
- Audio messages IDs
危害评估
- Facebook聊天应用日均用户数百万
- 可能导致VIP人士的敏感附件泄露
- 严重威胁用户个人隐私
漏洞修复与上报
上报时间线
- 2019.1.22:漏洞初报
- 2019.2.4:漏洞分类
- 2019.2.13:漏洞修复
- 2019.2.13:修复确认
- 2019.2.13:$15,000赏金发放
经验总结
- 定期重测原则:即使之前测试过的目标,也应定期重新测试,特别是新添加或更新的功能
- 不轻信响应:出错响应不一定意味着操作不可行,应深入分析
- 关注附件处理:任何涉及附件上传/下载的功能都应仔细检查ID引用机制
- 全平台影响评估:发现一个组件的漏洞后,应评估其对相关平台的影响范围
防御建议
-
服务端:
- 实施严格的权限检查,验证用户是否有权访问请求的资源
- 使用不可预测的标识符(如UUID而非自增ID)
- 实施访问控制列表(ACL)
-
客户端:
- 避免在客户端暴露敏感对象引用
- 实施CSRF防护措施
-
监控:
- 设置异常访问模式检测
- 监控短时间内对多个资源ID的访问尝试