挖洞经验 | Facebook商务平台商家管理员账户添加漏洞( $27,500)
字数 1690 2025-08-18 11:37:45
Facebook商务平台商家管理员账户添加漏洞分析报告
漏洞概述
本报告详细分析Facebook商务管理平台(Business Manager)中存在的一个高危权限提升漏洞,攻击者可通过构造特定POST请求,向任意商家后台管理员账户组中添加具备管理员权限的账户,从而获得对商家后台的完全控制权限。该漏洞于2018年被发现并报告,Facebook官方已修复并向报告者支付了$27,500的漏洞赏金。
Facebook商务管理平台简介
Facebook商务管理平台(https://www.facebook.com/business/)是一个免费平台,主要功能包括:
- 帮助广告主集成所有Facebook营销活动和外部合作伙伴
- 投放和追踪广告
- 管理主页和广告账户等资产
- 添加经销商或营销合作伙伴协助业务管理
- 集中管理所有业务资产和信息
- 安全管理用户访问权限
商家管理员账户(admin)拥有最高权限,可管理商家平台和主页中的所有设置、用户和权限。
漏洞技术细节
漏洞位置
存在于Facebook Business商家主页的管理设置中,向商家后台添加管理员账户的调用请求。
漏洞原理
该API端点缺乏必要的权限验证机制,导致攻击者可以向任意商家后台添加管理员账户。
漏洞利用方法
攻击者可通过构造以下格式的POST请求实现漏洞利用:
HTTP POST /business/aymc_assets/admins/import/
Host: facebook.com
business_id=TARGET_BUSINESS_ID
admin_id=MALICIOUS_USER_ID
session_id=SESSION_ID
参数说明:
business_id: 目标商家的ID号admin_id: 要添加的恶意用户ID号session_id: 有效的会话ID
获取必要参数的方法
-
business_id:
- 可通过网络抓包分析商家后台的正常请求
- 或通过Facebook API查询目标商家的公开信息
-
admin_id:
- 攻击者需要预先创建一个Facebook账户
- 通过用户资料页面或API获取该账户的ID
-
session_id:
- 攻击者需要拥有一个有效的Facebook登录会话
- 可通过XSS或其他漏洞获取,或使用攻击者自己的合法会话
漏洞影响
成功利用此漏洞可导致:
- 权限提升:将普通用户或未授权用户添加为目标商家的管理员
- 完全控制:获得对商家以下资源的完全管理权限:
- Facebook业务后台
- 商务主页
- 广告账户
- 关联的应用程序
- Instagram账户(如果已关联)
- 数据泄露:访问商家敏感业务数据和客户信息
- 金融风险:控制广告预算和支付方式
- 品牌声誉损害:以商家名义发布不当内容
漏洞修复时间线
- 2018.10.9: 漏洞初次上报至Facebook安全团队
- 2018.10.9: Facebook开始分析验证
- 2018.10.10: Facebook临时移除存在漏洞的服务端
- 2018.10.15: Facebook完成审计确认
- 2018.10.15: Facebook发布正式修复
- 2018.10.17: 向报告者发放$27,500漏洞赏金
安全建议
对于平台开发者
-
实施严格的权限验证:
- 所有管理操作应验证调用者是否具有足够权限
- 采用"最小权限原则"设计API
-
业务逻辑安全:
- 关键操作应验证用户与业务实体的关联关系
- 实现多因素验证机制
-
输入验证:
- 验证所有输入的business_id确实属于当前用户有权管理的业务
-
日志监控:
- 记录所有管理员添加操作
- 设置异常操作告警
对于商家用户
-
定期审计账户权限:
- 检查管理员账户列表是否有异常添加
- 移除不再需要的管理员账户
-
启用安全通知:
- 开启账户变更通知功能
- 设置异常登录告警
-
使用双重认证:
- 为所有管理员账户启用2FA
-
最小权限原则:
- 仅授予必要人员管理员权限
- 使用不同权限级别的账户
漏洞披露伦理
本漏洞已按照负责任的披露流程处理:
- 发现者首先向厂商报告
- 给予厂商合理时间修复
- 在修复完成并确认后才公开细节
- 仅用于安全研究目的
结论
此漏洞展示了即使是Facebook这样的科技巨头也可能在权限管理设计上存在严重疏忽。它强调了在业务逻辑层面实施严格访问控制的重要性,特别是在涉及管理员权限操作时。对于企业级平台,任何不验证调用者权限的API都可能成为攻击者提权的入口点。