JWT漏洞-Signature未校验签名有效性
基础知识-漏洞出现原因
上面我们说了Signature是用来保证防篡改的,如果后端对Signature不校验的话,那么相当于JWT就可以随便篡改。我们就可以直接修改payload的内容。

如下是存在漏洞的情况,我通过Python进行一个模拟,主动的忽略了证书校验这个问题。
data = jwt.decode(token, options={"verify_signature": False})
如下是安全的代码
data = jwt.decode(token, app.config['SECRET_KEY'], algorithms=["HS256"])
怎么测试?
这里给大家介绍一个网站:https://jwt.io/
当然你也可以直接安装burp的插件。这里我们通过使用burp插件来解决这个问题。首先在这里安装插件。不会安装插件的可以看。

环境
练习靶场:http://www.loveli.com.cn/see_bug_one?id=788
目标:获取admin用户的权限
开始
打开靶场,看到测试使用的普通用户

我们登录之后看到了一个JWT的数据包

这里首先点击 JSON Web Token 在下面的payload中可以看到对应的内容了。

然后这里我们尝试进行修改role为admin,然后直接复制

修改之前我们抓到的请求包,然后可以看到成功的获取到了admin的权限,以及获取到了Flag。

温馨提示:本文内容仅用于合法授权的安全学习与研究交流,严禁用于未授权渗透测试、漏洞利用或任何违法行为。
涉及企业或平台的未公开漏洞信息,请遵循负责任披露原则,勿公开传播可直接复现的敏感细节。
如存在侵权、错误信息或不当内容,请联系站方处理,我们将及时核实并删除。邮箱:admin@baimaojianghu.com。
