HackerOne ∶ 账户2FA 重置机制导致账户接管漏洞分析

该报告(#2492631)披露了 HackerOne 平台双因素认证(2FA)重置流程中的一处设计缺陷,攻击者可在获取受害者密码的前提下,利用重置请求的“自动过期”特性,在一天内完全接管受害者账户。

漏洞概述

2FA 本应是账户的最后一道防线。即便攻击者获知了邮箱和密码,也无法直接登录。然而,HackerOne 在登录流程中提供了“重置双因素认证”(Reset two-factor authentication)选项,当用户启用 2FA 后,登录时若未输入 TOTP(动态验证码),可点击该重置按钮。

系统会向受害者邮箱发送一封取消请求的邮件(而非确认邮件)。邮件内容提示:若用户在 一天内 不点击取消链接,则 2FA 将被自动禁用。

攻击者利用这一逻辑,在获取受害者密码后,发起 2FA 重置请求,然后静待一天。只要受害者未及时查看邮箱并取消该请求,2FA 即失效,攻击者便可凭密码直接登录,完全接管账户。

复现步骤

报告给出了清晰的复现路径:

  1. 在目标账户上启用 2FA,并退出登录。
  2. 使用密码登录,当提示输入 TOTP 时,不输入,而是点击“重置双因素认证”并确认。
  3. 收到重置请求邮件后,不做任何操作(不点击取消)。
  4. 等待 24 小时,再次使用密码登录,即可成功进入账户,无需输入任何 TOTP。

根本原因分析

该漏洞本质上是操作确认/取消逻辑倒置导致的安全风险。正常情况下,涉及安全敏感的操作(如禁用 2FA)应采用“确认即执行”模式,即用户发起请求后,必须通过邮件中的确认链接验证身份,才能生效。而 HackerOne 当前采用的是“取消即阻止”模式——请求立即生效,但提供一天的取消窗口。这种设计将安全责任转嫁给了用户,一旦用户忽略邮件或未及时处理,攻击者便有机可乘。

报告作者也指出,即便保留取消机制,也应当先要求用户通过邮件确认本次重置操作,确认后方可进入等待期(期间仍可取消),这样能大幅降低未授权重置的风险。

影响与危害

· 危害等级:高(可导致账户完全接管,无需复杂技术手段)
· 攻击门槛低:只需知道受害者密码(可通过其他途径获取)即可发起重置,无需任何越权或代码执行能力。
· 影响范围广:所有启用 2FA 的 HackerOne 账户均受此逻辑影响。

小结

这一案例再次说明,安全流程的设计不能依赖用户“及时响应取消通知”,而应以“主动确认”作为变更生效的前提。对于 2FA 这类核心防护功能,任何重置操作都必须经过用户明确、独立的二次验证,绝不可将“不操作”视为授权。


原文链接:https://hackerone.com/reports/2492631

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值