记一次EDUSRC简单却容易忽视的通杀
本文分享了JWT弱密钥漏洞导致的任意用户登录案例。作者首次遇到时仅发现越权修改功能,提交中危漏洞;第二次测试同一系统时,通过爆破JWT密钥成功伪造管理员token实现后台登录。文章指出该漏洞具有通杀特性,多个学校使用相同系统,但因厂商快速修复密钥而未能持续利用。案例揭示了JWT弱密钥这一简单但易被忽视的安全隐患,提醒开发者加强密钥复杂度。
引言:
相信很多师傅在做测试的时候都会遇到 JWT 做鉴权 对于 JWT 我的理解是:
JWT 是一个包含的身份验证令牌,其作用是在客户端和服务器之间安全传递用户身份与权限信息。
对于 JWT 的测试 比较多的就是利用弱密钥来伪造 JWT 造成任意用户登录 下面我分享一个 由于 JWT 弱密钥导致的任意用户登录。
第一次遇到:

这是第一次遇到的场景
进入后台这个功能少得可怜 这里我点击修改信息的时候抓包

由于传递的不是什么 id 之类的参数 这里猜测权限校验实在 JWT 部分 这里的话也是试一试的态度爆破了一下 JWT 密钥
使用的是无影里面自带的 JwtCrack


这里当时就直接爆出密钥了
这里一个个试了一下 发现更改 userid 的时候是可以实现越权修改的 证明这个 jwt 是可以伪造的


这里由于实在没有什么功能点 当时并没了解过 JWT 可以造成任意用户登录 所以就提交了个越权修改水了个中危,因而错过了一个大洞。
第二次相遇:
我在对某个证书站测试的时候又发现了这个系统 。
这次发现密钥依旧可以爆破 过了这么久都没修复

此时我也是有了点知识储备 所以想着打任意用户登录 但是没登陆管理员一般还是中危 由于这个证书站得两个中危或者高危才能兑换 本人也是深挖了一会 然后翻了一下数据包发现一个登录的数据包。
POST /xxxx/auth/api/admin/login HTTP/1.1
Host:
Cookie: JSESSIONID=D0F0B722CB901E99DB3A6F1A8EFAF9B0
Content-Length: 0
Sec-Ch-Ua: "Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"
Cgauthorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyMj3LCJycCI6Il9mTlN4MHQiLCJqdGkiOiJhZWM0ZWYwNy1mY2RhLTQ2NWItOGFkNS1lYTEzOWQ1YzI2Y2EiLCJ0aW1lc3RhbXAiOjE3NjQ1MTExNTc0MjR9.nNGCZd9Vjr_OzTi1sYj9lBRmgnKMo
后续也发现 产生这个 jwt 后 进入后台后的数据包全部都携带这个 jwt 都是这个 这里其实就可以尝试伪造 jwt 来造成任意用户登录了。
这时候缺的其实就是 userid 那管理的 userid 去哪里找呢 一般来说公告处都会有泄露 这里我也是找到管理的 userid 然后替换登录

此时已经可以选择角色了
这里也是直接进入管理后台



有些学校的公告处并没有管理的 id 但是进入后台发现了该开发商通用的一个 id 于是每次替换这个通用的就好了
出去提取一下特征 使用该系统的学校非常多 但是后台洞很难刷起来 这里也是陆续交了几个学校



该厂商修复得也很快 我还没刷起来就遗憾坠机 毕竟只需要改个密钥就能解决这个漏洞了
整篇看完其实这个通杀其实很简单 但是就是这样简单的漏洞往往是很多师傅容易忽视的。
更多推荐
所有评论(0)