json web token(JWT)绕过
Posted 向阳-Y.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json web token(JWT)绕过相关的知识,希望对你有一定的参考价值。
前期准备
本次试验用到靶场WebGoat,如何安装WebGoat?
Broken authentication——JWT tokens的第五题,首先随便切换一个用户,例如Tom,再点击删除图标,进行抓包。
抓到的包如下图
将其中的JWT值取出来,放到JWT在线解密平台上
这里分为了三个部分,头部,声明,签名(分别对应红、紫、蓝),签名出需要秘钥进行加密,但我们没有秘钥应该如何绕过呢?
JWT绕过
1.将头部信息的alg值改为none,并进行base64加密
2.将声明部分的admin值改为true,也进行base64加密
3.新组合的JWT应该为头部.声明.
(因为头部中的加密方式为none,所以签名部分可以舍去),但又由于=号会与url解码产生歧义,所以需要将=号删除,而Base64URL是支持这种写法的
4.最终的JWT值为:
ewogICJhbGciOiAibm9uZSIKfQ.ewogICJpYXQiOiAxNjQ4MjU2NDM3LAogICJhZG1pbiI6ICJ0cnVlIiwKICAidXNlciI6ICJTeWx2ZXN0ZXIiCn0.
5.将新的JWT值放入数据包中进行测试,成功执行
以上是关于json web token(JWT)绕过的主要内容,如果未能解决你的问题,请参考以下文章