[CTFHub]JWT 的头部和有效载荷这两部分的数据是以明文形式传输的,如果其中包含了敏感信息的话,就会发生敏感信息泄露。试着找出FLAG。格式为 flag{}

什么是JWT

Json Web Token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519

       该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景,是目前最流行的跨域认证解决方案。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。

JWT的三个部分

  • Header(头部)
  • Payload(负载)
  • Signature(签名)

         JWT三部分中间用.分割

        总所周知,登录账号后,前端就会收到后端发来的JWT。JWT的前两段默认是Base64编码的,验证JWT是否被篡改大多是靠最后一段的签名。

        后端一般会指定一种签名算法(如HMACSHA256算法,secret一般由后端定义,一定不能泄漏,否则攻击者将可以伪造JWT请求)

       JWT的第三部分

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

 

[JWTHub题目]JWT 的头部和有效载荷这两部分的数据是以明文形式传输的,如果其中包含了敏感信息的话,就会发生敏感信息泄露。试着找出FLAG。格式为 flag{}

1. 点击链接进入题目环境

2. 随便输入一个用户名密码进行登录。

3.打开F12控制台,查找本地存储与Cookie,发现JWT存在Cookie中

4. 拿到JWT去 jwt.io 网站去解析(或者按.分割成三段,拿前两段去Base64解码)

 5.发现FLAG(一半在Header,一半在Payload,拼接在一起即可)

喜欢的话给个赞趴~ 谢谢啦

猜你喜欢

转载自blog.csdn.net/m0_46745664/article/details/125909607