文章总结: 文档全面解析了绕过双因素认证(2FA)的多种技术手段。涵盖逻辑漏洞(如直接旁路、密码重置禁用2FA)、令牌重用与泄露、速率限制绕过(利用Header变异或旧API)及暴力破解。此外还包括响应篡改、会话未终止、备份代码泄露等攻击面。内容提供了具体的Payload与测试方法,实战价值高。 综合评分: 88 文章分类: 渗透测试,WEB安全,漏洞分析,实战经验,漏洞POC
绕过双因素认证/一次性密码
原创
网络安全民工 网络安全民工
网络安全民工
2026年1月27日 12:58 天津
绕过双因素认证/一次性密码
- ### 直接旁路
尝试直接访问下一个端点(您需要知道下一个端点的路径)。如果此方法无效,请尝试更改 Referrer 标头,使其看起来像是从双因素身份验证页面访问的。
- ### 重用令牌
- ### 共享未使用的 tokens
检查你是否能从你的账户中获取令牌,并尝试使用它来绕过另一个账户中的双重验证。
- ### 泄露的 tokens
Web应用程序的响应中是否存在令牌泄露?
- ### 电子邮件验证链接
尝试使用创建账户时收到的电子邮件验证链接,看看即使启用了双重验证 (2FA),是否仍然可以仅通过该链接访问您的个人资料。
- ### 会话权限
使用同一会话,分别用您的账户和受害者的账户启动流程。当两个账户都到达双重验证 (2FA) 环节时,先用您的账户完成 2FA,但不要进入下一步。然后,尝试用受害者的账户进入流程的下一步。
- ### 密码重置功能
几乎所有网络应用程序的密码重置功能都会在重置完成后自动将用户登录到应用程序。请检查是否发送了包含密码重置链接的邮件,以及您是否可以重复使用该链接多次重置密码(即使受害者更改了电子邮件地址)。
- ### OAuth
如果你能够攻破用户在受信任的 OAuth 平台(例如 Google、Facebook 等)上的帐户
蛮力
- ### 缺乏利率限制
尝试的验证码数量是否有限制?这样就可以直接暴力破解了。注意可能存在的“静默”速率限制,务必先尝试多个验证码,然后再使用真正的验证码来确认漏洞。
- ### 流量限制,但没有速率限制
在这种情况下,存在流量限制(你必须非常缓慢地进行暴力破解:使用一个线程,并在两次尝试之间进行一些睡眠),但没有速率限制。因此,只要有足够的时间,你就能找到有效的代码。
- ### 重新发送验证码并重置限制
虽然有速率限制,但当你“重新发送验证码”时,系统会发送相同的验证码,速率限制也会重置。这样,你就可以在重新发送验证码的同时进行暴力破解,从而避免达到速率限制。
- ### 客户端速率限制绕过
使用类似的端点
如果您正在攻击端点,/api/v3/sign-up请尝试执行暴力破解/Sing-up,/SignUp……/singup
也可以尝试在原始端点字节后附加类似这样的字符串,例如%00, %0d%0a, %0d, %0a, %09, %0C,%20
代码/参数中的空白字符
尝试在代码和/或参数中添加一些空白字节,例如%00, %0d%0a, %0d, %0a, %09, %0C, 。例如,如果您正在请求电子邮件验证码,并且只有 5 次尝试机会,则先用这 5 次机会尝试 , 尝试, 尝试 , 尝试, 以此类推……%20``code=1234%0a``[email protected]``[email protected]%0a``[email protected]%0a%0a
使用标头更改 IP 来源
X-Originating-IP: 127.0.0.1 X-Forwarded-For: 127.0.0.1 X-Remote-IP: 127.0.0.1 X-Remote-Addr: 127.0.0.1 X-Client-IP: 127.0.0.1 X-Host: 127.0.0.1 X-Forwared-Host: 127.0.0.1 #or use double X-Forwared-For header X-Forwarded-For: X-Forwarded-For: 127.0.0.1
如果限制每个 IP 地址尝试 10 次,则每尝试 10 次,就会更改标头中的 IP 地址。
更改其他标题
尝试更改用户代理、cookie……任何可能识别您身份的信息。
向路径添加额外参数
如果路径中存在速率限制/resetpwd,则尝试执行该路径,一旦达到速率限制,则尝试执行其他路径。/resetpwd?someparam=1
每次尝试登录前都登录您的帐户。 也许如果您在每次尝试(或每 X 次尝试)前登录帐户,速率限制就会重置。如果您正在攻击登录功能,您可以使用 Burp 中的 Pitchfork 攻击来实现这一点,即每 X 次尝试设置一次您的凭据(并标记重定向)。
- ### 用户账户缺少速率限制
有时您可以为帐户内的某些操作(例如更改邮箱、密码等)配置双因素身份验证 (2FA)。但是,即使您尝试登录时存在速率限制,帐户内的操作也不受速率限制。
- ### 由于短信重复发送验证码的频率没有限制,导致验证码被反复发送。
你无法绕过双重验证,但你可以浪费公司的钱。
- ### 无限 OTP 再生
如果你可以无限次生成新的 OTP,而 OTP 又足够简单(4 个数字),并且每个生成的 OTP 最多可以尝试 4 或 5 个令牌,那么你可以每次都尝试相同的 4 或 5 个令牌,并生成 OTP,直到它与你正在使用的 OTP 匹配为止。
竞态条件
请查看下一页关于绕过双因素认证的部分。
记住我功能
- ### 可猜测的cookie
如果该"remember me"功能使用了一个代码可猜测的新 cookie,请尝试猜测该 cookie 的代码。
- ### IP地址
如果该"remember me"功能与您的 IP 地址关联,您可以尝试找出受害者的 IP 地址,并使用X-Forwarded-For标头冒充它。
旧版本
- ### 子域名
- ### 蜜蜂
如果您发现 2FA 使用的是位于某个/v*/目录(例如"/v3/")下的 API,这可能意味着存在一些较旧的 API 端点,这些端点可能容易受到某种 2FA 绕过攻击。
前几节
启用双因素身份验证 (2FA) 后,应结束之前创建的会话。这是因为,当客户的帐户被盗用时,他可能希望通过启用 2FA 来保护帐户,但如果之前的会话没有结束,则 2FA 无法起到保护作用。
备份代码访问控制不当
双因素身份验证 (2FA) 启用后,备份代码会立即生成,并且仅可通过一次请求获取。每次后续请求后,代码可以重新生成,也可以保持不变(静态代码)。如果存在 CORS 配置错误/XSS 漏洞或其他允许您从备份代码端点的响应请求中“提取”备份代码的漏洞,那么攻击者就可以窃取这些代码,并在用户名和密码已知的情况下绕过 2FA。
信息披露
如果您发现 2FA 页面上出现了一些您之前不知道的机密信息(例如电话号码),那么这可能被视为信息泄露漏洞。
密码重置 == 禁用双重验证
- 创建账户并启用双重验证。
- 从该帐户注销。
- 现在,请前往忘记密码重置页面。
- 请更改密码。
- 现在尝试登录。
- 如果您未被要求输入双重验证码,您可以举报。
客户的变更响应
- 使用任意两个手机号码/邮箱注册两个账号(首先输入正确的验证码)
- 拦截您的请求
- 点击操作 -> 执行拦截 -> 拦截对此请求的响应
- 查看消息将显示的内容
status:1 - 使用其他账户重复上述步骤,但这次输入错误的验证码。
- 拦截对请求的响应
- 就像你收到的信息一样
status:0 - 切换
status到1ie 浏览器,status:1如果你已经登录,就转发请求,这意味着你刚刚完成了身份验证绕过!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网络安全民工 网络安全民工 网络安全民工《绕过双因素认证/一次性密码》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。












评论