多因素认证中的漏洞

  • 2FA 比单密码更安全,因为攻击者很难同时拿到 "你知道的(密码)" 和 "你拥有的(设备 / 验证码)"。

  • 不是多步骤就是多因素:比如邮箱验证码 + 密码,本质还是两次 "知识验证",不算真正 2FA。

  • 2FA 实现有优劣:

    • 安全:专用硬件令牌、Google Authenticator 等本地生成验证码。
    • 不安全:短信验证码,易被拦截、SIM 卡替换攻击。
  • 2FA 可被绕过:很多网站只校验第一步密码,第二步没做强制验证,可直接跳过后台页面。

    不严格的二重检测

    如果先被提示输入密码,然后又被要求在另一个页面输入验证码,用户在输入验证码之前实际上就处于"已登录"状态。在这种情况下,值得测试一下,看看完成第一步认证后是否能直接跳到"仅登录"页面。偶尔,你会发现网站在加载页面前并不会检查你是否完成了第二步。
    实验室:2FA简单绕过 |网络安全学院

    • 您的资历:wiener:peter
    • 受害者资历 carlos:montoya
      我们先登录自己的账号

    成功进入后我们记住 url

    然后使用受害人的账号密码登录, 登录的时候抓包, 丢弃 post 上传以外的所有包, 这些包里面就有打开二重验证的网页请求, 我们直接丢掉就可以绕过成功

    然后此时我们将 url 填入地址栏里面就发现绕过了

    复制代码
    https://0a8600fe03b542eb84fc4bb7000a000c.web-security-academy.net/my-account?id=carlos
暴力破解的2FA验证码
  • 正常流程
    • 输密码 → 服务器验证通过
    • 给浏览器设置一个 Cookie:account=用户名
    • 第二步验证时,服务器只看这个 Cookie来判断你是谁。
  • 攻击逻辑
    • 攻击者用自己账号正常登录第一步
    • 拿到自己的 Cookie 后,直接把 Cookie 里的用户名改成受害者
    • 去提交第二步验证码
    • 服务器看到 Cookie 里是受害者账号,就以为是受害者本人在验证
  • 后果
    • 攻击者不需要知道受害者密码
    • 只要暴力破解出验证码
    • 就能直接登录别人账号
      实验室:2FA破碎逻辑 |网络安全学院
      我们先用自己的账号密码登录, 然后随便输入一个验证码后抓包, 然后修改用户名进行爆破

      四位验证码都是数字, 所以我们

      最后爆破得到结果

      时间可能有点长, 稍微等一下
      然后用这个邮箱验证码去再次抓包并修改 cookie 和验证码, 就可以成功拿下
暴力破解的2FA验证码

与密码一样,网站也需要采取措施防止暴力破解2FA验证码。这尤其重要,因为代码通常是简单的4位或6位数字。如果没有足够的暴力破解保护,破解这种代码是轻而易举的。

一些网站试图防止这种情况,如果用户输入了一定数量的错误验证码,会自动登出。但这在实际中效果不佳,因为高级攻击者甚至可以通过为Burp Intruder创建宏来自动化这一多步流程。涡轮入侵者延长器也可以用于此目的。

实验:使用暴力破解攻击的2FA绕过 |网络安全学院



测试宏, 发现都正常

然后把设置全部 ok

然后暴力破解验证码就好了

最后进入我的账户就发现注入成功了!

总结

第一次跑到后发现Invalid CSRF token

一、为什么会报「令牌过期 / Invalid CSRF token」?

这个 2FA 实验的机制是:

  1. 每次爆破前,宏会帮你自动重新登录
  2. 但登录后拿到的 CSRF 令牌、Session 只有很短有效期 (大概 15~30 分钟)
  3. 你暴力破解 4 位验证码 0000~9999 要跑 3~5 小时
  4. 跑着跑着,旧令牌就超时失效了 → 直接报错

所以我们需要分段跑, 让一次跑个半个小时, 不成功的话就切换另外一次, 保证每次都是令牌时效期内就不会过期

相关推荐
say_fall1 小时前
【Linux网络编程】计算机网络基础:局域网与广域网、OSI七层模型与TCP/IP五层模型、封装解包与MAC/IP地址、端口号与socket编程接口
linux·网络·tcp/ip·计算机网络·信息与通信
狂师2 小时前
把别人的软件拆开看,推荐5个主流逆向工具
安全·程序员·开源
Joy T2 小时前
Gzip 压缩原理与实践:HTTP 响应压缩、性能收益与工程配置
网络·网络协议·http
叼烟扛炮2 小时前
Linux 学习笔记(五十四):内网穿透实战——用 frp 让外网访问你的私人电脑
linux·服务器·网络·笔记·学习
CodeYp20193 小时前
第3讲:网络命令
linux·网络·命令
jimmyleeee11 小时前
大模型安全之五十一:OWASP LLM Top 10 全景解读
人工智能·安全
武天旭17 小时前
AI安全--AI大模型的对抗样本攻击与防御解析
人工智能·深度学习·安全·机器学习
承渊政道21 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
爱和冰阔落1 天前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
不庸.1 天前
theHarvester 入门教程:从装好到看懂输出
安全·web安全·网络安全·开源·安全性测试