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权限登陆成功

相关推荐
云安全干货局9 小时前
服务器被攻击后如何快速恢复?数据备份 + 应急响应手册
网络·网络安全·云服务器·弹性云服务器
simon_skywalker10 小时前
软考 信息安全笔记(一)
网络安全
汤愈韬14 小时前
防火墙双机热备技术之VRRP
网络·网络协议·网络安全·security·huawei
番茄灭世神15 小时前
密码学入门基础
网络安全·区块链·密码学·哈希算法
FreeBuf_16 小时前
沙虫病毒与供应链安全:软件供应链成为网络安全的阿喀琉斯之踵
安全·web安全
上海云盾-高防顾问17 小时前
防CC攻击不止限速:智能指纹识别如何精准抵御恶意爬虫
爬虫·安全·web安全
信创天地17 小时前
AI + 信创双轮驱动:从自主可控到智能引领,重塑数字经济新范式
运维·人工智能·网络安全·系统架构·系统安全·运维开发
Whoami!18 小时前
❿⁄₉ ⟦ OSCP ⬖ 研记 ⟧ 密码攻击 ➱ 破解Windows哈希的原理
网络安全·信息安全·密码破解·mimikatz
白山云北诗18 小时前
中小企业如何做好企业官网的网络安全
网络·数据库·web安全·ddos·cc·企业网络安全
集成显卡18 小时前
CVE检索工具 | 开发一款检索漏洞信息的小程序
网络安全·小程序·uni-app·cve·漏洞信息