通过SCIM配置实现HackerOne账户接管漏洞分析

115 阅读4分钟

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

漏洞概述

经过多次尝试和理解,我能够通过SCIM(跨域身份管理系统)配置接管现有用户账户。使用SCIM配置时需要满足以下条件:

  • 已验证的域名
  • 正常工作的SSO配置

技术细节

初始测试过程

在首次尝试中,测试流程如下:

  1. 将组织用户导入Okta
  2. 收到错误提示:现有用户的电子邮件域名与已验证域名不匹配
  3. 更改电子邮件地址
  4. 结果:在组织用户页面中创建了新用户

成功利用方法

经过多次尝试后,发现了正确的操作序列:

  1. 在Okta中创建我控制的电子邮件用户(如attacker@verified.com
  2. 将组织用户导入Okta
  3. 将受害者账户分配给步骤1中创建的用户
  4. 将电子邮件参数字段更改为attacker@verified.com
  5. 更改密码
  6. 成功接管!

Okta字段关键性分析

Okta中有两个重要字段:用户名和电子邮件。

关键发现:

  • 如果攻击者使用verified.com验证域名,将victim@ato.com添加到Okta,会收到错误提示
  • 如果将用户名和电子邮件都改为victim@verified.com,会在H1组织中创建新用户
  • 如果用户名保持victim@ato.com而电子邮件改为victim@verified.com,受害者的电子邮件将被更改且不会发送通知(问题2)

复现步骤

环境设置

在进行之前,需要以下设置:

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

具体步骤

  1. 转到Okta目录,添加一个您可以访问的电子邮件用户
  2. 转到为Hackerone SCIM配置配置的Okta应用程序并导入用户
  3. 在导入的用户中,分配用户demo-member@hackerone.com(如果演示成员被删除,则为任何其他用户)
  4. 在为Hackerone SCIM配置配置的Okta应用程序下,点击Assignments选项卡,然后点击铅笔图标进行编辑
  5. 查找电子邮件字段并将其更改为您控制的内容并与验证域名一致
  6. 保存
  7. 它将自动同步
  8. 重置用户密码,您应该就可以进入了

影响分析

此漏洞的关键性在于:

这些默认用户始终存在,并且已经是沙盒、私人和公共组织的成员(除非被删除)。攻击者只需导入这些默认成员,保持用户名不变,更改电子邮件,重置密码即可获得访问权限。

漏洞根本原因

在尝试在其他漏洞赏金程序中复制此漏洞时失败,因为SCIM配置程序要求Okta中的用户名和电子邮件参数都来自组织内验证的域名。这可能是HackerOne的配置错误,只验证用户名是否正确,而不验证电子邮件地址。

修复验证

修复后,通过Okta使用SCIM配置用户时,现在要求用户名和电子邮件都属于HackerOne内控制的验证域名。即使导入用户并将其分配给Okta中控制的现有用户,也总是会创建新用户,而不是用新电子邮件地址覆盖该用户。

严重性评估

CVSS 4.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)全部设置为"无",因为发现的漏洞虽然严重,但其影响仅限于特定的目标用户账户。机密性影响评为高(VC:H),因为攻击者可以访问受损账户中的所有信息。

时间线

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

该漏洞最终被评定为高风险(7.0),涉及不正确的访问控制机制,影响了HackerOne的API基础设施处理SCIM配置的过程。