JAVA安全-JWT令牌

0x00 JWT简介

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

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

JWT 的内容以 Base64URL 进行了编码

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

题目主干已经存在提示,细心的师傅思路已经打开

注册登录抓取数据包,发现JWT传输

将jwt解密观察

登录进去查看到flag没用权限,需要admin权限

思路就打开,我们需要伪造admin的JWT传输即可
伪造数据头,将加密方式修改为none即为空,注意格式

修改声明,将secretid云 API 密钥修改为空值 “[]”,将账户修改为amdin

重新组装JWT令牌,将等于号转化为点,不需要签名,

替换JWT令牌发送

登录后再次抓包获取flag

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

交流学习:
博客:http://www.kxsy.work
CSND社区:告白热

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

告白热

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值