JWT介绍

什么是JWT?

JSON Web Token (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。此信息可以验证和信任,因为它是经过数字签名的。JWT 可以使用密钥(使用 HMAC算法)或使用 RSA 或 ECDSA 的公钥/私钥对进行签名。

JWT的优点

1.JWT可以进行跨语言支持的,如JAVA,JavaScript,NodeJS,PHP等很多语言都可以使用。

2.JWT可以在自身存储一些其他业务逻辑所必要的非敏感信息。

3.JWT结构简单,字节占用很小,便于传输。

4.JWT不需要在服务端保存会话信息,易于应用的扩展。

5.可扩展性好, 应用程序分布式部署的情况下,session需要做多机数据共享,jwt不需要。

6.无状态的jwt不在服务端存储任何状态。

JWT的缺点

1.JWT包含认证信息,因此一旦信息泄露

,任何人都可以获得令牌的所有权限。

2.JWT不建议使用HTTP协议来传输代码,而是使用加密的HTTPS协议进行传输。

3.安全性低, 由于jwt的payload是使用base64url编码的,可以直接解码,因此jwt中不能存储敏感数据。而session的信息是存在服务端的,相对来说更安全。

4.性能比较差, jwt太长。由于是无状态使用JWT,所有的数据都被放到JWT里,如果还要进行一些数据交换,那载荷会更大,经过编码之后导致JWT非常长。

JWT的基本结构

一般是分为三个字符串的,分别为头部、载荷、签名,中间用.隔开:

(1)Header:加密算法与Token类型;

(2)Payload:用户信息和附加信息的声明,一般是Json类型的键值对;

(3)Signature:对前两个部分的签名,其中包含了base64加密后的Header、base64加密后的Payload、签名加密算法私钥。

JWT漏洞利用工具

https://jwt.io/ JWT专用的解码网站

https://tooltt.com/jwt-decode/ JWT Token解析解码工具

https://github.com/brendan-rius/c-jwt-cracker jwt爆破工具

https://github.com/ticarpi/jwt_tool jwt综合工具

python的pyjwt库

实例

靶场地址:https://authlab.digi.ninja/

敏感信息泄露(Leaky JWT)

上边提供的是加密的JWT的token,利用解密的网站进行解密

https://tooltt.com/jwt-decode/

发现账号和密码,密码是经过MD5加密的,拿去MD5解密

拿到用户名和密码

复制代码
joe/Password1
空加密算法破解JWT(JWT None Algorithm)

JWT一般是几种加密算法进行签名,但是有的服务端也可以接受none(空加密算法)进行加密,在burp里边有一个Json web Token Attacker插件,可以使用空加密算法,下载安装

看一下token抓包,可以看到使用user登陆成功了

可以看到用户名和等级为robin,user

修改了用户发现是不允许的认证方式

可以在插件里边设置算法为None发现admin权限登陆成功

相关推荐
asaotomo20 分钟前
全本地运行的隐私防线:Hx0 数据卫士如何实现浏览器敏感信息与输入防泄漏
安全·web安全·浏览器插件
一个在高校打杂的1 小时前
honeypot之opencanary(轻量化蜜罐)
linux·网络安全·网络攻击模型·安全威胁分析·策略模式
一个脚本boy1 小时前
攻防世界misc简单难度1-20题详细解法
网络安全
谪星·阿凯2 小时前
Linux提权全攻略博客
linux·运维·服务器·网络安全
君如风军如风2 小时前
等保2.0安全通用要求第三级别之安全物理环境
网络安全·等级保护·等保2.0·安全合规·gb/t 22239
中科固源3 小时前
从低空协议劫持实战看 MAVLink 二进制审计在飞控发布环节的必要性
网络安全·模糊测试·低空安全
C2H5OH20 小时前
PortSwigger SQL注入LAB7 & LAB8 & LAB9
网络安全
上海云盾-小余1 天前
恶意爬虫精准拦截:网站流量净化与资源守护方案
网络·爬虫·web安全
small_white_robot1 天前
(Win)文件上传数据流绕过-面试常考
网络·安全·web安全·网络安全
Ha_To1 天前
2026.5.20 资产信息收集工具ENscan的配置与使用
安全·web安全