由于争用条件而绕过 HackerOne 2FA

admin 2025年2月27日09:16:27评论17 views字数 2072阅读6分54秒阅读模式

这篇文章是关于我如何发现一个竞争条件漏洞,该漏洞允许我关闭任何 HackerOne 帐户的 2FA。我不知道这个漏洞存在了多长时间,直到我注意到并向团队报告。

背景:首先了解 Hackerone 的 2fa 如何运作的背景很重要。

假设您已在 Hackerone 帐户中启用了 2FA,则身份验证流程将如下所示:

电子邮件 + 密码 => ✅ => 2FA 代码 => ✅ => 已登录。

一个安全的流程,我找不到任何漏洞来跳过给定的步骤之一来绕过身份验证

如何禁用 2FA?

要禁用 2FA,您需要按照给定的步骤作:

  1. 转到 https://hackerone.com/users/sign_in 并输入您的电子邮件和密码
由于争用条件而绕过 HackerOne 2FA由于争用条件而绕过 HackerOne 2FA
HackerOne 登录页面

2. 然后点击链接Rest two-factor authentication

由于争用条件而绕过 HackerOne 2FA由于争用条件而绕过 HackerOne 2FA

然后,如果您真的要重置帐户的 2FA,系统会提示您,如下所示:

由于争用条件而绕过 HackerOne 2FA由于争用条件而绕过 HackerOne 2FA

如果您单击,您将收到如下电子邮件:OK

由于争用条件而绕过 HackerOne 2FA由于争用条件而绕过 HackerOne 2FA

这意味着您的 2FA 将在 24 小时内自动重置,但您将收到有关 2FA 重置 4-6 次的警报电子邮件,每隔一段时间就会提醒您取消恢复,如果您没有启动恢复以保护您的帐户。

假设您不取消帐户恢复,并且如果您在片刻后登录您的帐户,您会注意到“重置双因素身份验证”按钮已禁用,如下图所示:

由于争用条件而绕过 HackerOne 2FA由于争用条件而绕过 HackerOne 2FA
灰色的关于重置 2FA 链接

这意味着您需要取消 2FA 重置请求,以再次请求作为其 1 次作。

我发现当我点击时我可以与请求赛跑Reset two-factor authentication.

HTTP 请求如下所示:

POST /graphql HTTP/2
Host: hackerone.com
Cookie: <COOKIES>
User-Agent: Mozilla/5.0(Macintosh; Intel Mac OS X 10.15; rv:135.0) Gecko/20100101 Firefox/135.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer:https://hackerone.com/users/sign_in
Content-Type: application/json
X-Csrf-Token: <CSRF TOKEN>
X-Product-Area: user-management
X-Product-Feature: signin
Content-Length:467
Origin:https://hackerone.com
Dnt:1
Sec-Gpc:1
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Priority: u=0
Te: trailers

{"operationName":"TwoFactorReset","variables":{"product_area":"user-management","product_feature":"signin","email":"<EMAIL>","password":"<PASSWORD>","fingerprint":"<FINGERPRINT>"},"query":"mutation TwoFactorReset($email: String!, $password: String!, $fingerprint: String!) {n  createUserTwoFactorReset(n    input: {email: $email, password: $password, fingerprint: $fingerprint}n  ) {n    successn    __typenamen  }n}n"}

该更改负责为您的 HackerOne 帐户启动 2FA 重置。如果您与此 HTTP 请求竞争,则会收到多个 2FA 重置通知,如下所示:TwoFactorReset

由于争用条件而绕过 HackerOne 2FA由于争用条件而绕过 HackerOne 2FA
报告的实际屏幕截图

如果您分析上图,您会注意到所有 2FA 重置通知电子邮件都是在 20 分钟前发送的,因此这意味着争用条件有效。

但是受害者会检查电子邮件并取消帐户恢复,因为他/她没有启动它,所以帐户会很安全,对吧?错

因为如果您通过单击链接取消 2FA 重置请求,则其余链接仍然有效,因此这意味着您需要单击每个链接以取消帐户恢复以保护您的帐户。

但这对大多数用户来说是不可能的,因为没有人 24/7 全天候在线,而且用户不知道他们需要点击所有链接来取消 2FA 重置请求以保护他们的帐户。

Hackerone 团队将此发现判定为中等严重性,并奖励我赏金:

由于争用条件而绕过 HackerOne 2FA由于争用条件而绕过 HackerOne 2FA

FIX:该修复程序现已在生产环境中运行,一旦用户链接到任何 2FA 请求取消链接,则所有其他链接都将失效,并通过电子邮件通知用户。因此,用户无需点击每个链接即可保护他们的帐户。

发生原因: 对于每个成功的 Raced 请求,都会向用户帐户发送一封电子邮件,使所有 2FA 取消链接都处于活动状态,如果您取消一个链接,则其他链接仍然有效。

原文始发于微信公众号(安全狗的自我修养):由于争用条件而绕过 HackerOne 2FA

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月27日09:16:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   由于争用条件而绕过 HackerOne 2FAhttps://cn-sec.com/archives/3776157.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息