news 2026/6/15 1:49:55

【第六期】漏洞攻防-身份认证篇:JWT、Session 与 OAuth —— 为什么你的登录令牌可能被伪造?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【第六期】漏洞攻防-身份认证篇:JWT、Session 与 OAuth —— 为什么你的登录令牌可能被伪造?

💡导读:你有没有想过,当你登录淘宝后,服务器是怎么记住你的?为什么关闭浏览器再打开,你依然处于登录状态?在黑客眼中,这些“登录凭证”就像是豪宅的钥匙。本期我们将深入身份认证机制的内部,看看JWT(JSON Web Token)​ 和Session​ 是如何被攻击者“偷走”或“伪造”的。


一、 身份认证的两大流派

在现代 Web 开发中,主要有两种方式来维持用户的登录状态:

1. Session + Cookie(传统派)
  • 原理

    1. 你输入账号密码登录。

    2. 服务器生成一个 Session ID(如abc123),把它存在服务器的内存或数据库里,并把Set-Cookie: sessionid=abc123发给浏览器。

    3. 下次你访问时,浏览器自动带上 Cookie,服务器查表确认abc123对应的是谁。

  • 痛点:服务器需要存每个人的 Session,用户多了服务器压力大(这就是分布式架构的噩梦)。

2. JWT(现代派 / 无状态)
  • 原理

    1. 登录成功后,服务器不存任何东西。

    2. 它签发一个Token(一串很长的字符串)给你,格式通常是:Header.Payload.Signature

    3. 你每次请求都在 Header 里带上Authorization: Bearer xxxxxx

    4. 服务器用密钥验证这个 Token 的签名是否正确,正确就放行。

  • 优势:服务器无感,非常适合微服务。


二、 JWT 漏洞:当“通行证”可以被伪造

JWT 是目前最热门的攻击目标。因为一旦 JWT 被破解,攻击者就可以伪装成任何用户(包括管理员)。

1. 算法混淆攻击(Algorithm Confusion)

漏洞原理:JWT 支持多种算法。有的服务器配置不当,允许使用none算法(即无签名)。

  • 正常 TokeneyJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoiYWRtaW4ifQ.xxxxx

  • 攻击操作:用 Burp Suite 拦截,修改 Header 为:

    json

    { "alg": "none", "typ": "JWT" }
  • 结果:删掉签名部分(Payload 后面的点及之后内容),发送给服务器。如果服务器接受了这个“无签名”的 Token,你就成功伪造了身份。

2. 空密钥或弱密钥(Weak Secret)

JWT 通常使用 HS256 算法,需要一个密钥(Secret)来签名。如果这个密钥是secret123456或空字符串,那就完了。

  • 实战工具:使用johnhashcat破解 JWT 密钥。

    # 使用字典爆破 JWT 密钥 hashcat -a 0 -m 16500 jwt_token.txt wordlist.txt
  • 利用:拿到密钥后,你可以使用在线工具(如 jwt.io)随意修改 Payload(如"role": "admin"),并重新签名。


三、 Session 漏洞:当“门禁卡”可以被预测

虽然 Session 老派,但坑也不少。

1. Session Fixation(会话固定)

原理:攻击者诱导受害者使用攻击者已知的 Session ID。

  1. 黑客访问网站,拿到一个 Session ID:evil_session_123

  2. 黑客构造钓鱼链接:https://bank.com/login?sessionid=evil_session_123

  3. 受害者点击链接并登录。

  4. 黑客使用evil_session_123直接登录受害者的账户。

2. 会话注销不彻底

原理:用户点了“退出登录”,服务器只是清除了前端的 Cookie,但没有在后端销毁 Session。

  • 结果:那个旧的 Session ID 依然有效,只要没过期,就能继续使用。


四、 OAuth 2.0 漏洞:第三方登录的陷阱

现在很多网站支持“微信登录”、“QQ登录”。这就是 OAuth 流程。

最常见的漏洞是redirect_uri 绕过

攻击场景

  1. 某网站授权 URL 是:https://site.com/oauth?redirect_uri=https://site.com/callback

  2. 攻击者修改为:https://site.com/oauth?redirect_uri=https://evil.com/callback

  3. 诱骗用户点击授权。

  4. 授权码(Code)被发送到攻击者的服务器evil.com,攻击者用这个 Code 换取用户的 Access Token,从而接管账户。


五、 实战演练:修改 JWT 成为管理员

我们在OWASP Juice Shop​ 中进行实战:

  1. 注册普通用户并登录。

  2. 打开 Burp Suite,抓取请求,找到Authorization: Bearer eyJ...头。

  3. 复制 JWT Token 到 jwt.io。

  4. 观察 Payload 部分:

    json

    { "data": { "id": 14, "email": "user@test.com", "role": "customer" }, "iat": 1700000000 }
  5. 修改:将"role": "customer"改为"role": "admin"

  6. 签名:如果服务器使用弱密钥(如secret),在 jwt.io 的 Verify Signature 栏输入密钥,生成新的 Token。

  7. 重放:在 Burp Repeater 中用新的 Token 替换旧 Token,访问/rest/admin接口。

  8. 结果:成功获取管理员权限,查看所有用户数据。


六、 2026 年防御建议

  1. JWT 安全

    • 绝不使用none算法。

    • 使用强密钥(大于 256 位),且定期轮换。

    • 设置短有效期(Expiration Time),并使用 Refresh Token 机制。

  2. Session 安全

    • 登录成功后强制更换​ Session ID(防止固定攻击)。

    • 退出登录时,务必在服务器端销毁 Session。

  3. 通用:开启 HttpOnly 和 Secure 属性,防止 XSS 偷 Cookie。


⚠️ 安全警示与法律红线

请务必遵守以下准则:

  1. 严禁账户接管:利用 JWT 伪造或 Session 绕过漏洞,登录他人账户(即使是测试账户),在渗透测试规范中也属于高风险操作,需谨慎授权。

  2. 敏感操作限制:在未获明确授权的情况下,严禁尝试修改他人的角色(如把自己提权为 Admin),这可能导致系统管理混乱,引发法律责任。

  3. 仅限靶场:本篇提到的所有攻击手法,请严格限制在Juice ShopPortSwigger Web Security Academy​ 等合法靶场中练习。

身份即权限。拥有伪造身份的能力,意味着拥有毁灭信任体系的权力。请慎用这份力量。


💬 互动环节

  • 你在开发中使用 Session 还是 JWT?为什么?

  • 你遇到过最奇葩的登录逻辑是什么?(比如短信验证码直接显示在网页源码里?)

  • 欢迎在评论区留言讨论!

👉 下一期预告:【漏洞攻防-前端篇】XSS 与 CSRF —— 当浏览器成为攻击者的“肉鸡”。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 1:48:57

第10篇:颜色系统与透明度

第10篇:颜色系统与透明度 颜色是网页视觉设计的灵魂。CSS 提供了丰富的颜色表示方式——从传统的十六进制到现代的色域标准,从固定色彩到动态计算。理解颜色系统,不仅能让你精确还原设计稿,还能创造出富有层次感的视觉体验。 学习…

作者头像 李华
网站建设 2026/6/15 1:31:38

2026-TFUZZ《Fuzzy Multi-Subspace Clustering》

论文题目:Fuzzy Multi-Subspace Clustering 作者与单位:Yangbo Wang, Jie Zhou (通信作者), Mingli Song, Yue Guo, Jianglin Lu — 中国传媒大学、深圳大学、长沙理工大学、东北大学 (美国) 发表时间:2026 年 1 月 12 日 (出版日期) 发表地点:IEEE Transactions on Fuz…

作者头像 李华
网站建设 2026/6/15 1:30:50

融合人类注意力的代码摘要生成技术解析

1. 项目概述:融合人类注意力的代码摘要生成技术在软件开发与维护过程中,代码摘要生成技术扮演着关键角色——它能够自动为源代码生成简洁的自然语言描述,帮助开发者快速理解程序功能。传统方法主要依赖规则模板或统计机器学习,而近…

作者头像 李华
网站建设 2026/6/15 1:28:54

Cursor Pro完整功能破解指南:终极机器ID重置与配置管理技术

Cursor Pro完整功能破解指南:终极机器ID重置与配置管理技术 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached you…

作者头像 李华