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

相关推荐
德迅云安全杨德俊2 小时前
DDoS 解析与防御体系
网络·安全·web安全·ddos
电子科技圈3 小时前
芯科科技在蓝牙亚洲大会展示汽车与边缘AI前沿蓝牙创新技术, 解锁车用、家居、健康及工商业等应用场景
人工智能·科技·嵌入式硬件·mcu·物联网·网络安全·汽车
王大傻09284 小时前
WASC 团队报告的安全威胁分类
网络·安全·web安全
大方子4 小时前
【好靶场】有点儿用的图形验证码
网络安全·好靶场
能年玲奈喝榴莲牛奶4 小时前
记一次挖矿病毒应急
网络安全·应急响应
橘子海全栈攻城狮5 小时前
【最新源码】养老院系统管理A013
java·spring boot·后端·web安全·微信小程序
网络安全许木6 小时前
自学渗透测试第30天(第一阶段总结与Metasploitable3部署)
网络安全·渗透测试
王大傻09288 小时前
注入攻击的概念
web安全·网络安全
txg6668 小时前
MDVul:用语义路径重塑漏洞检测的图模型能力
人工智能·安全·网络安全
weixin_514253188 小时前
426-opencua tmux
web安全