1500欧元 | 双因素认证绕过
Ashar Mahmood
Ashar Mahmood
漏洞集萃
2026年9月30日 16:22
山东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
本公众号所发布的文章内容仅供学习与交流使用,禁止用于任何非法用途;如有侵权烦请告知,我们会立即删除并致歉,谢谢
在测试一个私有漏洞赏金计划时,我遇到了一个
作者: Ashar Mahmood
原文链接: https://medium.com/@asharm.khan7/1500-2fa-bypass-how-we-bypassed-the-2nd-factor-without-ever-passing-it-1bd085d4a126
## 设置
该平台提供两种注册方式:个人账户或公司账户。在登录页面上,有一个小链接可用于为“贵公司”创建账户。
Press enter or click to view image in full size
已编辑的登录页面
我按照公司注册流程操作了,但在企业注册表单中有一条“后门”。如果你没有商会注册号,系统会直接为你创建一个普通的个人账户。
Press enter or click to view image in full size
“创建企业账户”页面,“请先创建个人账户”
于是,我创建了一个普通账户,验证了邮箱,然后做了一件任何攻击者都会对自己测试账户做的事——我开启了双重验证,并将验证方式设为“每次登录时”。
Press enter or click to view image in full size
已编辑的安全偏好设置弹窗,已选中“每次登录时”
账户受到全面保护。每次登录都需要输入密码和短信验证码。这正是我想要的状态,因为现在我就可以尝试破解它了。\
## 突破
我退出登录,打开了一个无痕窗口,仅凭邮箱和密码重新登录。不出所料,系统弹出了短信验证窗口,要求输入六位验证码。
Press enter or click to view image in full size
经过处理的短信验证界面
这就是关键时刻。就在这一刻,我尚未登录。我已验证了密码,但尚未通过第二重验证。本次会话应仅允许执行以下操作:输入验证码、重新发送验证码或取消。仅此而已。
因此,我没有输入验证码,而是打开了第二个标签页,直接跳转到了双因素认证设置页面:
https://login.example.com/wsp/2fa/settings?code=test
有两点特别引人注目。首先,code 参数并不重要。我传入了 code=test——这个值显然不是真正的验证令牌——但页面照样加载了。其次,这也是真正的漏洞:页面\\使用了我尚未完成的登录会话\\加载的。我的邮箱甚至显示为已验证。
Press enter or click to view image in full size
在 code=test 环境下加载的已屏蔽设置页面显示:“您的安全偏好设置:每次登录时”
接着,我打开了“安全”偏好设置,将选项从“每次登录时”改为“登录时从不使用”,然后点击“保存”。
Press enter or click to view image in full size
已编辑的安全偏好设置弹出窗口,选中了“登录时永不使用”
我点击了“返回设置”,随即跳转到了账户安全页面,此时已完全登录。
从未输入过任何代码。
在短信提示中,打开新标签页,点击设置链接,切换至“永不使用”,保存,进入账户。
该公司对我的报告和发现的漏洞非常满意,甚至在原有的赏金基础上额外奖励了我一笔奖金!
Press enter or click to view image in full size
## 那么,这到底为什么有效呢?
这个窍门很简单。值得理解的是它之所以奏效的原因。
当您通过密码验证步骤后,应用会向您提供一个会话,但这只是一个\\半认证会话\\。它表示“此人已知晓密码,目前正在接受验证”,而非“此人已登录”。在此之后的所有操作都应保持锁定状态,直到短信验证码被接受为止。
该漏洞在于,双因素认证(2FA)设置端点从未验证过它正在与何种会话进行交互。它将我处于半认证状态的会话视为已完全登录的用户,并允许我随意修改安全设置。于是,我利用这一漏洞,关闭了原本阻隔在我与该账户之间的那道防护。一旦双因素认证设置为“从不”,验证机制就无从执行,该会话随即被提升为完全认证状态。
简而言之:当一个会话通过了第一重验证后,系统就允许其绕过第二重验证。该应用将“被要求验证”与“已登录”混为一谈。被忽略的 code=test 更是雪上加霜,因为该端点甚至也没有对接收到的令牌进行验证。
觉得本文内容对您有启发或帮助?
点个关注➕,获取更多深度分析与前沿资讯!
👉 往期精选
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论