声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
前言
本文介绍 yakit 上关于JWT安全测试的插件。
JWT 介绍
JWT(JSON Web Token)是一种用于身份认证和授权的开放标准,它通过在网络应用间传递被加密的JSON数据来安全地传输信息使得身份验证和授权变得更加简单和安全
JWT 通常由三部分组成,分别是头部(Header)、载荷(Payload)和签名(Signature),它们之间用点(.)分隔,例如:xxxxx.yyyyy.zzzzz
。
- 头部
:一般包含两部分信息,一是令牌的类型,即JWT;二是所使用的签名算法,如HS256(HMAC with SHA-256)、RS256(RSA with SHA-256)等。它会被编码为一个 JSON 对象,然后进行 Base64 编码。 - 载荷
:是 JWT 的核心部分,包含了实际需要传递的数据,也被编码为 JSON 对象后进行 Base64 编码。这些数据可以是用户的身份信息、权限信息、过期时间等。其中,有一些预定义的字段,如iss(签发者)、exp(过期时间)、sub(主题)等。 - 签名
:是通过对头部和载荷进行签名得到的,用于验证令牌的完整性和真实性。签名的过程使用了头部中指定的签名算法和一个只有服务器端知道的密钥。
yakit 的 JWT 插件
-
JWT 解码 -
JWT None算法生成 -
JWT 弱口令测试
其他的算是其他组件或者框架的历史漏洞,这里不做介绍。
设置 JWT 插件合集,方便自己快速使用选择自定义菜单
添加菜单,将插件添加进去
JWT 解码
从 https://jwt.io/ 拿默认的JWT编码
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30
JWT 解码,顺便将三部分进行解析
JWT None算法生成
查看结果
eyJhbGciOiJOb25lIiwidHlwIjoiSldTIn0.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.
修改了第一部分,第三部分为空
JWT Token 弱口令测试
输入jwt和jwt密钥字典
内置字典如下
发现弱口令
常见 JWT 密钥字典
-
https://github.com/wallarm/jwt-secrets/blob/master/jwt.secrets.list
扩展阅读
-
从一个奇葩的JWT解密问题到Github 10K star组件的设计缺陷!!! https://mp.weixin.qq.com/s/hscF3h-ae9Qt6B81etdCfg -
JWT渗透姿势一篇通 https://xz.aliyun.com/news/12352 -
一次完整的JWT伪造漏洞实战案例 https://mp.weixin.qq.com/s/wySsC04H6kpUAcEYgbMqBw
原文始发于微信公众号(进击的HACK):Yakit JWT Token 弱口令枚举
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论