一次完整的Jwt伪造漏洞实战案例

admin 2026-04-10 03:11:09 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细记录了一次渗透测试实战案例,攻击者通过爆破JWT弱密钥(abcdefghijklmnopqrstuvwxyz)伪造令牌实现任意用户登录,并利用druid后台弱口令(admin/123456)获取敏感信息。过程中还发现若依系统默认密码Eedssrcpt2024!,成功进入后台。文章最后推广了相关安全课程。 综合评分: 85 文章分类: 渗透测试,WEB安全,漏洞分析,实战经验,SRC活动


cover_image

一次完整的Jwt伪造漏洞实战案例

原创

Tai Tai

C4安全

2024年12月17日 22:11 江苏

本文章由团队师傅[Tai]授权发布

某次漏洞挖掘时遇到了任意用户登录漏洞,这次的漏洞案例是由于jwt存在弱密钥,攻击者可以伪造jwt,从而获取非授权访问权限。此外站点还存在弱口令,可以通过弱口令登录druid后台,查看敏感信息。

首先通过微信搜索小程序,找到目标。

点击进入小程序,点击我的-微信登录

观察数据包,可以看到服务器生成了一个jwt值

这边就直接尝试爆破该Jwt值

爆破发现其使用了JJWT,且原始密钥为abcdefghijklmnopqrstuvwxyz

解密该jwt,发现其中有个user_id字段

用python脚本遍历user_id的值,范围为1-4103

根据不同的user_id,用密钥再生成不同的获取jwt值

然后在/system/api/getUserInfo接口上获取jwt用户信息。

key ="abcdefghijklmnopqrstuvwxyz" secret = base64.b64decode(key[:len(key) - (len(key) % 4)])  # Base64 解码密钥

此处使用的Python生成脚本如下:

注意,服务器是通过判断user_key来判断jwt是否在有效期,如果爆破的时候服务器返回jwt过期,请重新进入小程序刷新一个jwt在遍历user_id。

之后成功遍历出所有用户的信息

在用户中发现了测试账号

尝试登录这个账户,先清空小程序缓存,重新进入小程序,点击我的,进行抓包抓包

修改返回包的jwt为测试账户的jwt

包放出去,可以看到成功登录该测试账号,存在任意用户登录漏洞

然后是druid弱口令的挖掘

目录爆破该路径,注意请求头要带上jwt,否则服务器会响应401,爆破出了/sysyem路径,如下:

https://xxxx/system/

接着就发现了druid的后台

https://xxxx/system/druid/login.html

同样,访问的时候请求头也要带上jwt

使用弱口令admin/123456登录

后面还扫出了spring一些端点的信息泄漏,但是并没有发现有价值的信息,此外还发现了swagger接口文档,由于站点敏感,没有继续对接口测试

之后又发现该域名8081端口还开了个系统,一眼看上去是若依系统

从浏览器的URL路径提取插件findsomething中找到了一些接口

拿小程序搞到的jwt,放到如下接口爆破,可以看到这个系统用户的信息,包括账号和密文的密码

GET /prod-api/system/user/getInfo HTTP/1.1Host: xxx:8081source-client: miniapptenant-id: 1001Authorization: {{file:line(E:\Yakit\Yakit\yakit-projects\temp\tmp297600343.txt)}}

可以证明这些jwt对该系统有效,但是没有具体的密码登录,现在只能调用该系统里接口获取数据,非常不方便;于是我找到了如下接口,里面显示了该系统的初始化密码为Eedssrcpt2024!

注:数据包里jwt随便填一个有效的就行

GET /prod-api/system/config/2 HTTP/1.1Host: xxn:8081tenant-id: 1001Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjozNTU4LCJ1c2VyX2tleSI6IjFiMDBkNTg3LTUyOGQtNGEwMS05NDY0LTQ5YzJkY2YyY2ViZiIsImRlcHRfaWQiOm51bGwsInRlbmFudC1pZCI6MTAwMSwidXNlcm5hbWUiOiJcdTVmYWVcdTRmZTFcdTc1MjhcdTYyMzdfODY1MCJ9.89FqNollbb7u2blR3PDDnHdbs5XStPjR9l5iQXwXlsaXBU7n7YKDh8ZZQMXWbcoUlRnG1m7nIgnLoZ_ajfxH-A

于是随便找了个用户名尝试登录

使用初始密码Eedssrcpt2024!成功进入后台

到此渗透测试结束

每个初学挖洞的小白都有一个美梦:是否可以在我学习挖洞技能的时候,有位师傅手把手指导,不仅教会我各种技术,还能带着我一起接项目挣钱,让我的技能和钱包同时“升级打怪”。

    还真别说,现在这个天降大饼的美梦来了!FreeBuf知识大陆帮会《安全渗透感知大家族》,正好为你提供了这样的机会。在这里,你既能学到知识,又能做项目赚钱,还能在项目实践过程中与大佬们交流思路、夯实基础。

SRC漏洞挖掘出洞课程,是由团队内部师傅根据实际挖洞经历整合的适合挖掘漏洞但是缺乏思路、刚接触学习漏洞挖掘不出漏洞的师傅们的漏洞挖掘教程。

第一期课程价格199,这价格还要什么自行车?课程正在持续更新中~

致远A8,又称致远互联A8协同管理软件,是面向中型、大型、集团型组织(集团版OA)的数字化协同运营中台。A8版本的系统小版本较多,本次分析用的是致远A8 V7 SP1版本源码。

END

关注Code4th安全团队

了解更多安全相关内容~


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:C4安全 Tai Tai《一次完整的Jwt伪造漏洞实战案例》

评论:0   参与:  0