Java安全系列-JWT令牌的详解(附真题解答)

admin 2022年2月23日16:33:27评论119 views字数 955阅读3分11秒阅读模式

0x00 JWT简介

json-web-token简称java web令牌,也称作JWT,是一种可以实现跨域身份验证身份的方案,jwt不加密传输数据,但能够通过数据前面验证数据的未被篡改。

JWT的组成由头部header,声明Claims,签名Signature一起组成一个完整的JWT令牌,其中头部和声明由base64加密传输,签名由头部的特殊加密方式加密(例如常见值用HS256(默认),HS512 等,也可以为 None。HS256表示 HMAC SHA256。)三个部分以英文句号.隔开。

JWT 的内容以 Base64URL 进行了编码

Java安全系列-JWT令牌的详解(附真题解答)
JWT组成

JWT 固定参数有:
iss:发行人
exp:到期时间
sub:主题
aud:用户
nbf:在此之前不可用
iat:发布时间
jti:JWT ID 用于标识该 JWT

0x01 JWT攻击点及检测

攻击点:
1)数据伪造:无密钥,攻击者通过修改声明信息达到绕过
2)数据伪造:有密钥:修改相应数据后重新加密传输
3)签名爆破:利用字典对签名爆破

检测:
1)javaweb应用
2)Authorization
3)数据包存在JWT格式传输

0x02 JWT实战-2020-虎符网络安全赛道-Web-easy_login

题目主干已经存在提示,细心的师傅思路已经打开Java安全系列-JWT令牌的详解(附真题解答)注册登录抓取数据包,发现JWT传输Java安全系列-JWT令牌的详解(附真题解答)将jwt解密观察Java安全系列-JWT令牌的详解(附真题解答)登录进去查看到flag没用权限,需要admin权限Java安全系列-JWT令牌的详解(附真题解答)思路就打开,我们需要伪造admin的JWT传输即可 伪造数据头,将加密方式修改为none即为空,注意格式Java安全系列-JWT令牌的详解(附真题解答)修改声明,将secretid云 API 密钥修改为空值 "[]",将账户修改为amdinJava安全系列-JWT令牌的详解(附真题解答)重新组装JWT令牌,将等于号转化为点,不需要签名,Java安全系列-JWT令牌的详解(附真题解答)替换JWT令牌发送Java安全系列-JWT令牌的详解(附真题解答)登录后再次抓包获取flagJava安全系列-JWT令牌的详解(附真题解答)

重点是在JWT的数据伪造修改上面,以及注意修改格式问题

关注及时推送最新安全威胁资讯!

Java安全系列-JWT令牌的详解(附真题解答)「由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,EXP 与 POC 仅仅只供对已授权的目标使用测试,对未授权目标的测试本文库不承担责任,均由本人自行承担。本文库中的漏洞均为公开的漏洞收集,若文库中的漏洞出现敏感内容产生了部分影响,请及时联系作者删除漏洞,望师傅们谅解」

原文始发于微信公众号(Gaobai文库):Java安全系列-JWT令牌的详解(附真题解答)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月23日16:33:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Java安全系列-JWT令牌的详解(附真题解答)https://cn-sec.com/archives/799341.html

发表评论

匿名网友 填写信息