破解 JWT:漏洞赏金猎人指南(第二部分)

admin 2025年6月24日21:08:08评论8 views字数 2059阅读6分51秒阅读模式

通过弱签名密钥绕过 JWT 身份验证以获取 Bug Bounty,通过在易受攻击的 Web 应用程序中强制使用弱 JWT 机密来伪造管理员访问权限。

前 言:破解 JWT 系列

欢迎来到我正在进行的“破解 JWT”漏洞赏金利用系列的第 2 部分——深入探讨不良加密实践和 Web 身份验证系统交叉点上的漏洞。

JWT(JSON Web Tokens)无处不在——从现代 Web 应用程序到 API 身份验证——但如果实施不当,它们就会成为攻击者的金矿。本系列教程包含多个部分,将带您探索 7 个以上基于真实世界的实验,涵盖从存在缺陷的验证和算法混淆,到可暴力破解的密钥和公钥配置错误等各种问题。

这是第 1 篇文章的链接

破解 JWT:漏洞赏金猎人指南(第二部分)

文章索引

如果您是漏洞赏金猎人、安全研究员,或者只是渴望了解 JWT 是如何被攻破的 —— 那么这篇文章就适合您。🧠💣

✨ 简介

JSON Web Tokens (JWT) 在 Web 应用程序中用于维护会话和身份信息,非常流行。但与任何安全机制一样,JWT 的安全性取决于其实现方式。在本文中,我将带您完成一个动手实验,通过暴力破解一个弱对称签名密钥并伪造一个有效的管理员令牌来绕过 JWT 身份验证。💥

是的,我又在这个实验室里把卡洛斯删掉了。卡洛斯永远是卡洛斯。😤

破解 JWT:漏洞赏金猎人指南(第二部分)

破解 JWT:漏洞赏金猎人指南(第二部分)

🔐 JWT 简介:快速复习

典型的 JWT 由 3 个以点分隔的 base64 编码部分组成:

<Header>.<Payload>.<Signature>

1. 标题

包含有关所用算法的元数据:

{"alg":"HS256","typ":"JWT"}

2. 有效载荷

存储有关用户的声明:

{"sub":"wiener","admin":false}

3.签名

使用密钥以加密方式验证令牌是否被篡改。

🧠 了解漏洞

PortSwigger Academy 实验室向我们展示了一个经典漏洞:使用弱对称密钥 ( secret1) 签名的 JWT。如果我们能够暴力破解该密钥,就能签署自己的令牌,并冒充任何用户,包括管理员。😎

这种缺陷在现实世界的应用程序中极其常见,开发人员:

  • 硬编码秘密
  • 使用弱/密码式密钥
  • 不要旋转或安全存储签名材料

让我们打破这个实验室并将那个弱密钥转变为完全的管理控制权。

🧪 实验室概述

实验室名称:通过弱签名密钥绕过 JWT 身份验证平台:PortSwigger Web 安全学院目标:暴力破解 JWT 签名密钥,伪造管理员令牌并删除carlos

🧰 你需要的工具

  • 🧩 Burp Suite(带有 JWT 编辑器扩展)
  • ⚔️ Hashcat(暴力破解 JWT 秘密)
  • 🔐 Wallarm 的 jwt-secrets 列表

✅ 漏洞利用步骤

⚠️ 在我们开始之前,请确保在 Burp 中设置了 JWT 编辑器扩展。

1️⃣ 进入实验室

访问提供的实验室 URL 并使用以下方式登录:wiener:peter

破解 JWT:漏洞赏金猎人指南(第二部分)

2️⃣ 尝试访问/admin

尝试直接访问 — 您将收到 403 或重定向。目前尚无管理员权限。

破解 JWT:漏洞赏金猎人指南(第二部分)

3️破解 JWT:漏洞赏金猎人指南(第二部分) 捕获 JWT

在 Burp 中,拦截对 的请求/admin,然后将其发送到 Repeater。检查 Authorization 标头——这就是我们的目标 JWT。

破解 JWT:漏洞赏金猎人指南(第二部分)

4️⃣ 暴力破解 JWT 密钥

克隆秘密列表:

git clone https://github.com/wallarm/jwt-secrets

运行 Hashcat:

hashcat -a 0 -m 16500 <JWT_STRING> jwt-secrets/jwt.secrets.list

破解 JWT:漏洞赏金猎人指南(第二部分)

💥 Boom — 我们破解了秘密:

secret1

💡 运行--show即可揭示破解的秘密,无需重新处理。

5️⃣ Base64 编码秘密

使用 Burp Decoder 编码secret1为 base64:

Result → c2VjcmV0MQ==

破解 JWT:漏洞赏金猎人指南(第二部分)

6️⃣ 在 Burp 中生成对称密钥

JWT 编辑器 → 密钥 → 新建对称密钥

  • 生成新密钥
  • 将参数替换kc2VjcmV0MQ==
  • 保存密钥

破解 JWT:漏洞赏金猎人指南(第二部分)

7️⃣ 修改并签名令牌

在 Burp Repeater → JWT 选项卡中:

  • 更改"sub""administrator"
  • 点击签名→选择对称密钥
  • 勾选“不要修改标题”
  • 点击“确定”

破解 JWT:漏洞赏金猎人指南(第二部分)

8️⃣ 发送修改后的请求

将签名的 JWT 请求发送至/admin🎉 成功 — 授予管理员访问权限。

破解 JWT:漏洞赏金猎人指南(第二部分)

9️⃣ 删除卡洛斯

发送此 GET 请求:

/admin/delete?username=carlos

🗑️ 抱歉,卡洛斯,你跑得很好。

破解 JWT:漏洞赏金猎人指南(第二部分)

🔟确认实验室完成

右键单击 → 在浏览器中显示 → 确认实验成功。🏁 大功告成!

破解 JWT:漏洞赏金猎人指南(第二部分)

📌 关键要点

✅ 弱 JWT 密钥 = 严重的身份验证绕过

✅ 始终正确使用 base64 加密你的密钥

✅ Hashcat + Burp 等工具 = 致命组合

✅ 永远不要低估代币逻辑中的小疏忽

🌍 现实世界的相关性

JWT 是现代应用程序中的主要内容,但它们的实现通常很差:

  • 薄弱/可猜测的秘密
  • 移动应用中的硬编码令牌
  • 缺乏alg执法

这些疏忽可能意味着全面入侵——账户接管、权限提升、数据窃取。在 VAPT 或赏金工作期间,务必对 JWT 进行批判性分析。🧠💼

🙌 祝您黑客愉快!

这就是我的 JWT 绕过系列的第二部分!从alg: none密钥破解开始,我们正在慢慢揭开错误配置的 JWT 的真正脆弱性。

破解 JWT:漏洞赏金猎人指南(第二部分)

破解 JWT:漏洞赏金猎人指南(第二部分)
破解 JWT:漏洞赏金猎人指南(第二部分)
破解 JWT:漏洞赏金猎人指南(第二部分)
破解 JWT:漏洞赏金猎人指南(第二部分)

原文始发于微信公众号(安全狗的自我修养):破解 JWT:漏洞赏金猎人指南(第二部分)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月24日21:08:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   破解 JWT:漏洞赏金猎人指南(第二部分)https://cn-sec.com/archives/4197574.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息