JSON Web 令牌 (JWT)攻击_jwt payload 用户id

本文详细介绍了JSON Web Token (JWT) 的安全漏洞,包括通过JWK、JKU和kid标头注入,以及算法混淆等方式绕过JWT身份验证。通过实例展示了如何利用这些漏洞,并提供了黑客学习资源,包括学习路线、视频教程和相关工具。
摘要由CSDN通过智能技术生成

4、通过 JWK 标头注入绕过 JWT 身份验证

JSON Web 签名 (JWS) 规范描述了一个可选的标头参数,服务器可以使用该参数以 JWK 格式将其公钥直接嵌入到令牌本身中,再利用嵌入公钥的私钥进行签名,服务端会采用嵌入的公钥进行验证,从而绕过成功。

JWK(JSON Web Key)是一种标准化格式,用于将密钥表示为JSON对象。JWT 标头示例:

{
“kid”: “ed2Nf8sb-sD6ng0-scs5390g-fFD8sfxG”,
“typ”: “JWT”,
“alg”: “RS256”,
“jwk”: {
“kty”: “RSA”,
“e”: “AQAB”,
“kid”: “ed2Nf8sb-sD6ng0-scs5390g-fFD8sfxG”,
“n”: “yy1wpYmffgXBxhAUJzHHocCuJolwDqql75ZWuCQ_cb33K2vh9m”
}
}

5、通过 JKU 标头注入绕过 JWT 身份验证

某些服务器允许您使用 (JWK Set URL) 标头参数引用包含密钥的 JWK 集,而不是直接使用 header参数嵌入公钥。验证签名时,服务器从此 URL 获取相关密钥,通过利用URL公钥的私钥进行签名,服务端会采用URL 获取相关密钥验证,从而绕过成功。

JWK 集是一个 JSON 对象,其中包含表示不同键的 JWK 数组。示例。

{
“keys”: [
{
“kty”: “RSA”,
“e”: “AQAB”,
“kid”: “75d0ef47-af89-47a9-9061-7c02a610d5ab”,
“n”: “o-yy1wpYmffgXBxhAUJzHHocCuJolwDqql75ZWuCQ_cb33K2vh9mk6GPM9gNN4Y_qTVX67WhsN3JvaFYw-fhvsWQ”
},
{
“kty”: “RSA”,
“e”: “AQAB”,
“kid”: “d8fDFo-fS9-faS14a9-ASf99sa-7c1Ad5abA”,
“n”: “fc3f-yy1wpYmffgXBxhAUJzHql79gNNQ_cb33HocCuJolwDqmk6GPM4Y_qTVX67WhsN3JvaFYw-dfg6DH-asAScw”
}
]
}

将JKU加入到JKT中,kid需要改成生成公钥的kid:

{
“kid”: “d3adb574-f8e4-43c0-ab43-2839670aa123”,
“alg”: “RS256”,
“jku”: “https://exploit-0a4700ee

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值