壁纸 1
壁纸 2
壁纸 3
壁纸 4
壁纸 5
壁纸 6
壁纸 7
壁纸 8
壁纸 9
壁纸 10

JWT的常见攻击方法

JWT(JSON Web Token) 是一种广泛用于身份认证和授权的技术,但其安全性可能因配置不当或实现漏洞而受到威胁。以下是关于 JWT常见攻击方法的说明。

约 5 分钟 2199 字

#JWT的攻击方法

jwt介绍

JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案。JWT 的原理是,服务器认证以后,生成一个 JSON 对象,发回给用户,之后用户与服务端通信的时候,都要发回这个 JSON 对象。服务器完全只靠这个对象认定用户身份。为了防止用户篡改数据,服务器在生成这个对象的时候,会加上签名。
  一个JWT例子如下,是一个很长的字符串,中间用点`.`分隔成三个部分,分别是头部、负载、签名。eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhZG1pbiIsImlhdCI6MTcyODU3MDg2MywiZXhwIjoxNzI4NTc4MDYzLCJuYmYiOjE3Mjg1NzA4NjMsInN1YiI6InVzZXIiLCJqdGkiOiI1NWQ3ZDBlNjI2YzFjMjk2NTY5MGEwZWFlYTk3ZjJlZSJ9.L7RdUb-HcLH4-MTea7n4S7iuwFhuAPnbCSQlpwtKFx0




jwt在安全中我认为最重要的就是签名部分,通过某个保存在服务器的密钥(secret),使用 Header 里面指定的签名算法(如HMAC SHA256)产生签名。所以如果知道了密钥就可以篡改jwt。当然如果alg显示是None代表没有签证直接篡改jwt即可,可使用  https://www.jwt.io/ 

一般jwt的签名算法有以下系列:

算法系列 算法标识 描述
HMAC HS256, HS384, HS512 使用 SHA-256/384/512 的哈希消息认证码。这是对称加密,签名和验证使用同一个密钥。
RSA (PKCS#1 v1.5) RS256, RS384, RS512 使用 SHA-256/384/512 的 RSASSA-PKCS1-v1_5 签名。这是非对称加密,使用私钥签名,公钥验证。
RSA (PSS) PS256, PS384, PS512 使用 SHA-256/384/512 和 MGF1 的 RSASSA-PSS 签名,是 RSA 的一种更安全的填充模式。
ECDSA ES256, ES384, ES512 使用 P-256/384/521 曲线和 SHA-256/384/512 的椭圆曲线数字签名算法。
EdDSA EdDSA 基于 Ed25519 椭圆曲线的数字签名算法,提供高性能和安全性。
无签名 none 表示 JWT 未经过签名。此算法应谨慎使用,仅当令牌通过其他方式(如 TLS)受到保护时才可接受,否则会带来严重安全风险。

攻击:

首先要知道jwt的签名的加密算法,当怀疑目标使用了对称密钥(如 HS256)且强度不足时,可以借助 jwt_tool 进行离线爆破。
下载地址:https://github.com/ticarpi/jwt_tool

成功下载后: Pasted image 20261009133741

是这个样子的

 常用操作参数:

这些参数通常与其他模式组合使用。

参数 作用 典型组合
-d <dict> 指定字典/词表文件路径 与 -C 搭配爆破密钥:-C -d /usr/share/wordlists/rockyou.txt
-t <URL> 目标 URL,将伪造的 token 发送到该地址验证 与 -M at 搭配:-t https://target/my-account -rc "session=<JWT>" -M at
-rc <cookies> 指定包含 JWT 的请求 Cookie 与 -t 搭配使用
-rh <header> 添加额外的请求头 如 Authorization: Bearer <JWT>
-pc <claim> 指定要修改的 payload 声明(支持点号访问嵌套对象) 与 -pv、-I 搭配:-pc user.phone -pv true -I
-pv <value> 指定声明的新值 与 -pc 搭配使用
-I 修改后立即重新签名 与 -pc、-pv、-S 搭配
-S <alg> 指定签名算法 如 -S hs256 或 -S es256
-k <key> 指定签名密钥或密钥文件 与 -S 搭配使用

假设爆破的jwt为: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhZG1pbiIsImlhdCI6MTc3MTk5NjQ0MSwiZXhwIjoxNzcyMDAzNjQxLCJuYmYiOjE3NzE5OTY0NDEsInN1YiI6InVzZXIiLCJqdGkiOiI2MGM2M2RmMjdmOTFiZDg5MjU3ODc1OTA2ZjBhZWNiNCJ9.-0Wyh-_OgzWt5ub-sP6XNtXxwEoeYudMD1wzcFNYBEI

我们找个字典kali上有自带的我们直接先用kail的先:

Pasted image 20261009152044 密钥就是123456. 之后再更新怎么用脚本。

评论

音乐
封面
加载中...
正在连接音乐平台...
0:00/0:00
歌词
0.0s
-- 首