JWT伪造怎么实现


这篇文章主要讲解了“JWT伪造怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JWT伪造怎么实现”吧!Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。实际像这么一段数据这串数据以(.)作为分隔符分为三个部分,依次如下:Header
Payload
Signature
Signature 部分是对前两部分的签名,防止数据篡改。首先,需要指定一个密钥(secret)。这个密钥只有服务器才知道,不能泄露给用户。然后,使用 Header 里面指定的签名算法(默认是 HMAC SHA256),按照下面的公式产生签名。算出签名以后,把 Header、Payload、Signature 三个部分拼成一个字符串,每个部分之间用”点”(.)分隔,就可以返回给用户。修改算法为none
修改算法从RS256到HS256
信息泄漏 密钥泄漏
爆破密钥
首先是一个登录框,我们先注册一个账号admin123,admin123看题目意思应该是想办法变成admin来登录根据注释符提示可以发现存在源码泄露问题接着发现了源码泄漏访问app.js,controller.js,rest.js即可得到源代码关键代码controllers/api.js尝试注册,可以看到在注册的时候生成了一个token,并存在sessionStorage中得到:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZWNyZXRpZCI6MSwidXNlcm5hbWUiOiJhZG1pbjEyMyIsInBhc3N3b3JkIjoiYWRtaW4xMjMiLCJpYXQiOjE1ODczNzg4MjB9.o5ePpkaTQcSBxmOV-z6hBsWmvvbkd1a_C6Eu7Dpok4Q解密得到:token生成过程看看各种条件,这里会先对sid进行验证,我们需要绕过这条认证,下面还有一个jwt.verify()的验证并赋值给user这免费云主机域名里的密钥是生成了18位,基本没有爆破的可能性,我们使用的方法是将算法(alg)设置为none,接着我们需要让jwt.verify()验证中的secret为空,这里有个tricks再看看能不能过条件最后使用(.)进行拼接得到伪造的tokeneyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzZWNyZXRpZCI6W10sInVzZXJuYW1lIjoiYWRtaW4iLCJwYXNzd29yZCI6ImFkbWluMTIzIiwiaWF0IjoxNTg3Mzc4ODIwfQ.修改sessionStorage接着使用admin,admin123登录访问api/flag,即可得到flag感谢各位的阅读,以上就是“JWT伪造怎么实现”的内容了,经过本文的学习后,相信大家对JWT伪造怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是云编程开发博客,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: 如何进行数字证书申请

小编给大家分享一下如何进行数字证书申请,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!随着科技发展越来越迅速越,越来越多人都选择在互联网的时代开创出一片自己的天地。而随着互联网时免费云主机域名代的庞大数据也变得更加的不安全。而SSL就是一个可以保护…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/06 17:09
下一篇 02/06 17:09