JSON Web Token

JSON Web Token

0x01  JSON Web Token介绍

Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。

本节课中详细介绍了JSON Web Token(JWT)中的漏洞的利用。在这个程序中,JWT用于认证,登录成功后,用户将获得一个Cookie的JWT。

JSON Web Token是一种数据的存储机制,主要有加密和签名的安全机制。

JWT的格式如下:

Base64(header).Base64(payload).Base64(signature)

例如:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9.eyJsb2dpbiI6ImFhYWEiLCJpYXQiOiIxNTI1MzQyMDM3In0

表示

{"alg":"HS256","typ":"JWS"}. {"login":"aaaa","iat":"1525342037"}.网站对数据设计签名机制

第三部分是一个签名,网上说的很详细了,此处不进行说明。

0x02  JSON Web Token漏洞利用

首先设置好代理,使用BurpSuite进行抓包,然后注册一个用户,点击下方的登录,如果已经注册过了,也可以直接登录

将抓到的包转发,直到出现包含cookie的这个包

鼠标右键,点击Send to Repeater

点击go,可以在右边返回的数据包中发现正常的登录的用户aaaa

将auth的值右键发送到Decoder进行解码

分别对每一段进行Base64解码

得到如下结果

然后将编码格式HS256改为None,将用户名改为admin,然后分别进行Base64编码,并把第三部分去掉(注意不要去掉.)

得到如下结果(注意后边有个.)

把这个结果复制到Repeater中,并点击Go

可以发现右侧返回的数据包中登陆的账号已经变成了admin

JSON Web Tokens (JWTs)在前端的应用非常广泛。JWT是一种轻量级的安全传输机制,用于在不同系统之间安全地传输信息。它是一种基于JSON的开放标准(RFC 7519),用于在各个实体之间以可靠和安全的方式传输信息。 在前端应用中,JWTs通常用于身份验证和授权。以下是JWT在前端应用中的常见应用方式: 1. 用户身份验证:当用户登录时,服务器会生成一个包含用户信息和其他相关数据的JWT,并将其返回给客户端。客户端可以将JWT存储在本地(通常使用浏览器的本地存储,如localStorage或sessionStorage),并在后续请求中将其作为身份验证凭证发送给服务器。服务器可以验证JWT的签名,并从中提取用户信息,以确认用户的身份。 2. 跨域身份验证:当前端应用需要与多个不同域的后端服务进行交互时,可以使用JWT作为跨域身份验证解决方案。客户端在登录后获取JWT,并将其发送到其他后端服务作为身份验证凭证。后端服务可以验证JWT的签名并提取其中的信息,以确认用户的身份。 3. 授权和权限管理:JWT可以包含有关用户角色和权限的信息。在前端应用中,可以使用JWT来控制用户对不同功能和资源的访问权限。前端应用可以解析JWT并根据其中的角色和权限信息来决定显示哪些功能或资源。 4. 单点登录(Single Sign-On,SSO):JWT也可以用于实现单点登录功能。当用户在一个应用中登录后,该应用会生成一个JWT,并将其发送给身份提供者(如身份验证服务器)。其他需要用户身份验证的应用可以通过验证JWT来确认用户的身份,而无需用户再次登录。 总结起来,JWT在前端应用中可以用于用户身份验证、授权和权限管理,以及实现跨域身份验证和单点登录等功能。使用JWT可以减少服务器端的状态管理,提高系统的可扩展性和性能。然而,在使用JWT时需要注意安全性,例如使用HTTPS来传输JWT,避免将敏感信息存储在JWT中,并定期更新JWT的密钥等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值