通过SCIM配置实现HackerOne账户劫持的技术分析

本文详细分析了HackerOne平台存在的SCIM配置漏洞,攻击者可通过Okta的SCIM配置修改用户邮箱并重置密码,实现账户完全接管。漏洞涉及SSO配置、域名验证等多个技术环节,最终被评级为高风险漏洞并已修复。

HackerOne | 报告 #3178999 - 通过SCIM配置接管现有HackerOne账户

漏洞概述

安全研究人员boy_child_成功发现并报告了HackerOne平台的一个严重漏洞:攻击者可通过SCIM(跨域身份管理系统)配置流程,接管现有的HackerOne用户账户。

技术背景

要利用此漏洞,需要满足以下前提条件:

  • 已验证的域名
  • 正常工作的SSO(单点登录)配置

漏洞复现步骤

初始测试过程

研究人员最初尝试的测试流程:

  1. 将组织用户导入Okta
  2. 收到错误提示:现有用户的邮箱域名与已验证域名不匹配
  3. 尝试修改邮箱
  4. 结果:在组织用户页面创建了新用户而非修改现有用户

成功利用方法

经过多次尝试后,发现正确的攻击序列:

  1. 在Okta中创建攻击者控制的用户(如attacker@verified.com)
  2. 将组织用户导入Okta
  3. 将受害者账户分配给步骤1创建的用户
  4. 将邮箱参数字段修改为attacker@verified.com
  5. 重置密码
  6. 成功接管账户

技术细节分析

Okta字段重要性

在Okta中有两个关键字段:用户名(username)和邮箱(email)

关键发现:

  • 如果攻击者使用已验证域名verified.com,添加victim@ato.com到Okta,会收到域名不匹配错误
  • 如果将用户名和邮箱都改为victim@verified.com,会在H1组织中创建新用户
  • 如果保持用户名为victim@ato.com,但将邮箱字段改为victim@verified.com,受害者的邮箱将被修改,且不会向受害者发送通知(问题2)

登录限制

攻击者无法通过SSO提供商(Okta)登录,因为用户名victim@ato.com已被导入并使用。

环境设置要求

在进行漏洞复现前,需要以下设置:

  • 从指定位置设置沙盒程序,不要删除演示成员
  • 联系HackerOne支持为沙盒程序激活SSO和SCIM配置
  • 在Okta中设置SSO
  • 在Okta中设置SCIM
  • 添加用户

影响评估

严重性分析

此漏洞的严重性在于:

这些默认成员存在于沙盒、私有和公共组织中,除非被手动移除。攻击者只需导入这些默认成员,保持用户名不变,修改邮箱,重置密码即可获得访问权限。

漏洞修复

HackerOne开发团队修复了此漏洞,现在通过Okta进行SCIM配置用户时,要求用户名和邮箱都必须属于HackerOne内控制的已验证域名。即使导入用户并将其分配给Okta中现有的受控用户,系统也会始终创建新用户,而不是用新邮箱地址覆盖该用户。

CVSS评分说明

最终CVSS 4.0评分为7.0(高风险),具体评分为: CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

后续评分(SC、SI、SA)均为"无",因为该漏洞的影响仅限于特定的目标用户账户。

时间线

  • 2025年6月5日:漏洞报告提交
  • 2025年6月16日:漏洞确认并修复
  • 2025年6月17日:复测完成,确认修复有效
  • 2025年7月17日:报告公开披露

该漏洞的发现和报告展示了SCIM配置过程中邮箱验证机制的重要性,提醒开发者在实现身份管理系统时需要严格验证所有用户标识字段。

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