CTFHub:第八十三关——JSONWebToken——无签名

admin 2026-07-13 05:04:55 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文档为CTFHubJWT无签名漏洞实战教程,核心原理是JWT支持none算法,当Header中alg字段设为none时,服务器跳过签名验证。攻击者可篡改Payload内容并置空签名,伪造管理员身份获取flag。实战步骤包括截获token、修改alg为none、将role改为admin、移除签名部分后重新发送请求。该漏洞利用简单,需注意JWT库对none算法的支持。 综合评分: 84 文章分类: WEB安全,漏洞分析,实战经验


cover_image

CTFHub:第八十三关——JSON Web Token——无签名

原创

君陌社区 君陌社区

君陌社区渗透安全笔记

2026年7月12日 20:00 江苏

在小说阅读器读本章

去阅读

CTFHub网址:【https://www.ctfhub.com/#/index】

登录账号 点击技能树

选择“web进阶- JSON Web Token-无签名”开启题目

题目描述: 一些JWT库也支持none算法,即不使用签名算法。当alg字段为空时,后端将不执行签名验证。尝试找到 flag

漏洞原理: JWT支持none算法,当Header中指定alg为none时,服务器会跳过签名校验,攻击者因此可篡改Payload内容并置空签名,从而伪造任意身份(如管理员)登录。

单击打开链接进入靶场实战练习环境,页面为一个登陆界面

输入用户名admin和随机的密码之后登录,页面显示“Hello admin(guest), only admin can get flag.”意思是只有管理员才能得到flag数据

重新登陆并用Yakit工具截获数据包,服务器的response包含token值,其中Header中明文数据为{“typ”:”JWT”,”alg”:”HS256″},本关卡为无签名,意味着alg需要设置为none,这代表需要改为{“typ”:”JWT”,”alg”:”none”}

下一个数据包中Payload明文内容为{“username”:”admin”,”password”:”123456″,”role”:”guest”},页面提示只有admin能获取flag,说明role角色应该为admin,这表示应该改为{“username”:”admin”,”password”:”ljn”,”role”:”admin”}

使用jwt解密网站解析,完整如下所示

{  "typ":"JWT",  "alg":"none"}

加密为

ewogICJ0eXAiOiAiSldUIiwKICAiYWxnIjogIm5vbmUiCn0=

{  "username":"admin",  "password":"123456",  "role":"admin"}

加密为

ewogICJ1c2VybmFtZSI6ICJhZG1pbiIsCiAgInBhc3N3b3JkIjogIjEyMzQ1NiIsCiAgInJvbGUiOiAiYWRtaW4iCn0=

由于使用无签名算法,所以Signature为空,将其移除。然后使用.将Header、Payload拼接起来,得到新的JWT token

ewogICJ0eXAiOiAiSldUIiwKICAiYWxnIjogIm5vbmUiCn0=.ewogICJ1c2VybmFtZSI6ICJhZG1pbiIsCiAgInBhc3N3b3JkIjogIjEyMzQ1NiIsCiAgInJvbGUiOiAiYWRtaW4iCn0=.

利用此token构建新的数据包并发送,返回的数据中得到flag数据

上传flag数据完成靶场实战练习


免责声明:

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

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

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

本文转载自:君陌社区渗透安全笔记 君陌社区 君陌社区《CTFHub:第八十三关——JSON Web Token——无签名》

进程强杀最新版火绒6 网络安全文章

进程强杀最新版火绒6

文章总结: 本文为安全天书公众号发布的推广文章,标题为进程强杀最新版火绒6,但内容实质是宣传其付费圈子红蓝偶像练习生小圈子。文章展示了效果演示图,并列出圈子内提
评论:0   参与:  0