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

本文详细披露了HackerOne平台存在的一个严重安全漏洞:即使用户账户被永久封禁且删除后,攻击者仍可通过先前生成的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'

影响

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

补充信息

研究人员后续发现,被封禁的用户甚至可以通过API端点提交新报告:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
curl "https://api.hackerone.com/v1/hackers/reports" \
-X POST \
-u "<YOUR_API_USERNAME>:<YOUR_API_TOKEN>" \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d @- <<EOD
{
"data": {
"type": "report",
"attributes": {
"team_handle": "string",
"title": "string",
"vulnerability_information": "string",
"impact": "string",
"severity_rating": "none",
"weakness_id": 0,
"structured_scope_id": 0
}
}
}
EOD

此外,GraphQL端点(https://hackerone.com/graphql)也存在相同漏洞,即使用户已不存在,攻击者仍能获取所有个人资料信息。

处理过程

  • 2022年5月22日:漏洞提交
  • 2022年5月25日:漏洞被验证并提交给修复团队
  • 2022年6月2日:漏洞被分类并发放奖金
  • 2022年8月3日:修复完成并验证
  • 2022年8月4日:报告状态标记为"已解决"
  • 2025年7月14日:报告被公开披露

技术细节

弱点类型:不正确的访问控制 - 通用
严重程度:中等(5.0)
CVE ID:无
赏金:隐藏

该漏洞暴露了API密钥管理中的关键缺陷,即在账户状态变更时未正确撤销已颁发的访问凭证。

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