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

相关推荐
ZZ581 天前
mumu模拟器adb安装apk以及抓https包
网络安全
hellojackjiang20111 天前
如何保障分布式IM聊天系统的消息可靠性(即消息不丢)
分布式·网络安全·架构·信息与通信
EverydayJoy^v^1 天前
RH134简单知识点——第11章—— 管理网络安全
linux·网络·web安全
ZeroNews内网穿透1 天前
关于飞牛fnOS重要安全更新的提醒
运维·服务器·web安全·ssh
周某人姓周1 天前
DOM型XSS案例
前端·安全·web安全·网络安全·xss
Yff_world1 天前
网络安全与 Web 基础笔记
前端·笔记·web安全
白帽子凯哥哥1 天前
网络安全Web基础完全指南:从小白到入门安全测试
前端·sql·web安全·信息安全·渗透测试·漏洞
大方子1 天前
【BugkuCTF】Whois
网络安全·bugkuctf
Whoami!1 天前
⓫⁄₉ ⟦ OSCP ⬖ 研记 ⟧ Windows权限提升 ➱ 动态链接库(dll)文件劫持(上)
windows·网络安全·信息安全·dll劫持
m0_738120721 天前
内网横向——记录某三层网络渗透及综合渗透(socks代理隧道搭建,nacos未授权,redis上传Webshell)
网络·安全·web安全·ssh·php