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'

影响

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

注意:此漏洞在测试账户中发现和利用,仅用于测试目的,希望未违反任何规则。批准后将分享令牌。

后续更新

2022年5月23日

获得批准,提供测试用户@mrtst及令牌:zco8RyMaV6EkgQ+5rwOSLExuGww36dr8uOHC7U5oEbA=,并验证所有API端点均可用。

2022年5月25日

HackerOne团队确认报告,将其归类为“不当访问控制-通用”弱点,严重性从中等(5.0)调整。

补充影响

  • 被封禁用户仍可通过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年6月2日

报告被标记为“已分类”,奖励发放。团队确认此为盲点,将修复。

2022年8月3日

修复发布,请求重测。重测确认问题已解决,报告关闭。

2025年6月14日

报告公开披露。

报告详情

  • 报告ID:#1577940
  • 状态:已解决
  • 严重性:中等(5.0)
  • 弱点:不当访问控制-通用
  • CVE ID:无
  • 赏金:隐藏
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计