多因素认证中的漏洞

  • 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. 跑着跑着,旧令牌就超时失效了 → 直接报错

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

相关推荐
珠海西格2 小时前
1MW光伏项目“四可”装置数据采集类设备具体配置详解
服务器·网络·人工智能·分布式·安全
小二·2 小时前
企业级网络安全深度解析:从协议层到云原生的攻防实战与架构设计
安全·web安全·云原生
wanhengidc2 小时前
企业如何有效利用高防服务器
运维·服务器·网络·安全·web安全·智能手机
小手智联老徐2 小时前
在 macOS 上使用 Lima 虚拟机安全部署 OpenClaw:构建你的 AI 隔离沙箱
人工智能·安全·macos·ai智能体·openclaw
F1FJJ2 小时前
开源实践:用 Go 实现浏览器直连内网 RDP/SSH/VNC
运维·网络·网络协议·网络安全·golang·ssh
可涵不会debug2 小时前
五种IO模型
运维·服务器·网络
code_pgf2 小时前
Jetson Orin NX 16G部署openclaw及本地化安全配置及建议
人工智能·安全·ai
23.2 小时前
【分析】HTTP请求端口错误诊断:404、502与连接拒绝的区别
网络·网络协议·http
竹下为生2 小时前
大模型安全与语义平滑防御
安全