JWT与JWT破解伪造

作者: const27 分类: All,杂七杂八的安全问题 发布时间: 2020-06-07 09:55

何为JWT

JWT,即JSON WEB Token.基于JSON的用于身份验证令牌.
它主要用于身份验证,如:一旦用户登陆后,后续的每个请求都会包含JWT用来表明自己的身份,继而访问该令牌允许的资源.

JWT结构

Json Web Token分为三个部分:
header,payload,signature

============================================
Header:
header典型的构成为 token类型(“JWT”)和算法名称(如 HMAC SHA256或者RSA )
例如

将这个JSON用base64编码得到JWT的第一个部分

============================================
Payload:
payload用于记录关于用户的数据

将这个JSON用base64编码得到JWT的第二个部分
JWT的header和payload部分不要放置敏感信息,因为base64解码就可以看见了。

============================================
Signature(签名):
签名用于验证消息在传递过程中是否被修改。要得到签名部分必须 有编码过的header、编码过的payload、一个秘钥(secret),签名算法 (header中指定的算法) 才能得到。例如一个签名的得到方法可能会是:

HMACSHA256(base64UrlEncode(header) + "." +
base64UrlEncode(payload), secret)

JWT破解

我们破解JWT,其实就是为了破解它的secret。
用工具暴力破解https://github.com/brendan-rius/c-jwt-cracker
用法如下:

得到密钥

JWT伪造

既然得到了密钥,那么我们就可以改写JWT信息并创造出正确的签名了。
推荐在这个网址进行JWT改写伪造 https://jwt.io/

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

Leave a Reply

Your email address will not be published. Required fields are marked *

标签云