JWT密钥爆破浅析 - 爆破失败就是失败了么

admin 2024年12月27日12:16:29评论26 views字数 1252阅读4分10秒阅读模式

JWT密钥爆破浅析 - 爆破失败就是失败了么

上一篇文章中团队师傅Tai分享了一篇JWT伪造的技术文字,讲述了爆破JWT成功并伪造JWT获取网站权限的过程。师傅在分享文章时还指出了JJWT的概念,即Java中的一个JWT工具库,旨在Java中生成和验证JSON Web Tokens (JWT)。

根据另一篇文章中师傅的发现:

https://mp.weixin.qq.com/s/ntVi1vdWzEPHpQ4k-45Cjg
JWT密钥爆破浅析 - 爆破失败就是失败了么

JJWT库生成JWT时,密钥会取4的倍数,即使使用正确的完整密钥去解密,也是会报错的。这里我用JJWT生成的JWT,用字典去解密,正常情况下无法解出

JWT密钥爆破浅析 - 爆破失败就是失败了么
然后写一个解密脚本,修改密钥的获取逻辑,保证密钥是4的倍数
JWT密钥爆破浅析 - 爆破失败就是失败了么
最后是可以成功解密的,原始的密钥为abcdefghijklmnopqrstuvwxyz
JWT密钥爆破浅析 - 爆破失败就是失败了么
最后被截断为abcdefghijklmnopqrstuvwx,24位英文字母则可以正常解密
还有几个可能会影响JWT解密的因素,比如密钥解密时候如何正确对长度取值
这里我在编写最简单的JWT解密程序时,经常遇到一个报错
JWT signature does notmatch locally computed signature. JWT validity cannot be asserted and should not be trusted
JWT密钥爆破浅析 - 爆破失败就是失败了么
下断点跟进代码中,看看判断报错的逻辑
JWT密钥爆破浅析 - 爆破失败就是失败了么
JWT密钥爆破浅析 - 爆破失败就是失败了么
进入isValid验证签名,可以看到这里对比了两个签名,如果不相同则会报错
JWT密钥爆破浅析 - 爆破失败就是失败了么
可以判断是密钥编码取值时长度存在问题,于是我添加了一行代码
// 创建一个适合 HS512 的密钥SecretKey signingKey = Keys.hmacShaKeyFor(keyBytes);
让密钥满足HS512长度的要求,之后便可以成功解密
JWT密钥爆破浅析 - 爆破失败就是失败了么
因此爆破失败不一定就是密钥错了,很大程度上密钥如何读取影响了解密结果,在爆破时候要转换编码方式多次尝试。大多数JWT生成时候都有默认的密钥值,不会人为去更改,能成功爆破的概率还是挺大的。

每个初学挖洞的小白都有一个美梦:是否可以在我学习挖洞技能的时候,有位师傅手把手指导,不仅教会我各种技术,还能带着我一起接项目挣钱,让我的技能和钱包同时“升级打怪”。

    还真别说,现在这个天降大饼的美梦来了!FreeBuf知识大陆帮会《安全渗透感知大家族》,正好为你提供了这样的机会。在这里,你既能学到知识,又能做项目赚钱,还能在项目实践过程中与大佬们交流思路、夯实基础

JWT密钥爆破浅析 - 爆破失败就是失败了么

SRC漏洞挖掘出洞课程,是由团队内部师傅根据实际挖洞经历整合的适合挖掘漏洞但是缺乏思路、刚接触学习漏洞挖掘不出漏洞的师傅们的漏洞挖掘教程。

第一期课程价格199,这价格还要什么自行车?课程正在持续更新中~

JWT密钥爆破浅析 - 爆破失败就是失败了么

致远A8,又称致远互联A8协同管理软件,是面向中型、大型、集团型组织(集团版OA)的数字化协同运营中台。A8版本的系统小版本较多,本次分析用的是致远A8 V7 SP1版本源码。

JWT密钥爆破浅析 - 爆破失败就是失败了么

END

关注Code4th安全团队

了解更多安全相关内容~

原文始发于微信公众号(Code4th安全团队):JWT密钥爆破浅析 - 爆破失败就是失败了么

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月27日12:16:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JWT密钥爆破浅析 - 爆破失败就是失败了么http://cn-sec.com/archives/3560533.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息