CTFHub~JWT漏洞靶场最详细教程

news2024/9/20 8:53:32

在这里插入图片描述

image-20240821102755305

什么是JWT

JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. JWTs can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA or ECDSA—[摘自官网]
http://jwt.io
翻译: jsonwebtoken(JWT)是一个开放标准(rfc7519),它定义了一种紧凑的、自包含的方式,用于在各方之间以JSON对象安全地传输信息。此信息可以验证和信任,因为它是数字签名的。jwt可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名
通俗解释:JWT简称JSON Web Token,也就是通过JSON形式作为Web应用中的令牌,用户在各方之间安全地将信息作为JSON对象传输。在数据传输过程中还可以完成数据加密、签名等相关处理。

JWT的结构

1 令牌组成

  1. 标头(Header)

  2. 有效负荷(Payload)

  3. 签名(Signature)
    因此:JWT通常如下所示:xxxx.yyyy.zzzz Header.Payload.Signature

1.1 标头 - Header

标头通常由两部分组成:令牌的类型(即JWT)和所使用的签名算法,例如HMAC SHA256或RSA。它会使用 Base64 编码组成 JWT 结构的第一部分。
**注意:**Base64是一种编码,也就是说,它是可以被翻译回原来的样子来的。它并不是一种加密过程。

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

ewogICAiYWxnIjogIkhTMjU2IiwKICAgInR5cCI6ICJKV1QiCiB9.

1.2 有效载荷 - Payload

令牌的第二部分是有效负载,其中包含声明。声明是有关实体(通常是用户)和其他数据的声明。同样的,它会使用 Base64 编码组成 JWT 结构的第二部分

{
"sub": "1234567890",
"name": "John Doe",
"admin": true,
"exp":时间戳
}
1.3 签名 - Signature

前面两部分都是使用 Base64 进行编码的,即前端可以解开知道里面的信息。Signature 需要使用编码后的 header和 payload以及我们提供的一个密钥,然后使用 header 中指定的签名算法(HS256)进行签名。签名的作用是保证 JWT没有被篡改过-如:
HMACSHA256(base64UrlEncode(header) + “.” + base64UrlEncode(payload),secret)
签名目的:
最后一步签名的过程,实际上是对头部以及负载内容进行签名,防止内容被窜改。如果有人对头部以及负载的内容解码之后进行修改,再进行编码,最后加上之前的签名组合形成新的JWT的话,那么服务器端会判断出新的头部和负载形成的签名和JWT附带上的签名是不一样的。如果要对新的头部和负载进行签名,在不知道服务器加密时用的密钥的话,得出来的签名也是不一样的。

安全问题

1 敏感信息泄露

JWT保证的是数据传输过程中的完整性而不是机密性。
因为JWT的payload部分是使用Base64url编码的,所以它其实是相当于明文传输的,当payload中携带了敏感信息时,我们对payload部分进行Base64url解码,就可以读取到payload中携带的敏感信息。
随便登陆image-20240821110139482

查看此时的JWTimage-20240821110238337

image-20240821110322640

image-20240821110457086

eyJBRyI6ImViNThjNTBkNzM2MDdkN30iLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
{"AG":"eb58c50d73607d7}","typ":"JWT","alg":"HS256"}
eyJ1c2VybmFtZSI6Inhpbmd5dW5cdCIsInBhc3N3b3JkIjoieGluZ3l1biIsIkZMIjoiY3RmaHViezdlZjFiMWY0ZCJ9
{"username":"xingyun","password":"xingyun","FL":"ctfhub{7ef1b1f4d"}

image-20240821104125311

2 无签名(none算法)

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

image-20240821104229163

image-20240821113000086

3 弱密钥(c-jwt-cracker爆破密钥)

如果JWT采用对称加密算法,并且密钥的强度较弱的话,攻击者可以直接通过蛮力攻击方式来破解密钥https://github.com/brendan-rius/c-jwt-cracker

sudo apt-get update
sudo apt-get install libssl-dev
make

签名部分是(HMACSHA256(base64UrlEncode(header) + “.” +base64UrlEncode(payload),secret)
如果前面的header和payload做出更改的话,签名认证也会随之更改。 同时,在使用不同的密钥对头部信息和载荷进行加密时,所产生的JWT是不一样的签名部分是(HMACSHA256(base64UrlEncode(header) + “.” +base64UrlEncode(payload),secret)
如果前面的header和payload做出更改的话,签名认证也会随之更改。 同时,在使用不同的密钥对头部信息和载荷进行加密时,所产生的JWT是不一样的

# 抓包看到了Cookie,然后访问网页将其内容进行修改
https://jwt.io/

image-20240821134608433

image-20240821141403641

# 使用kali对其进行破解出ulim值

image-20240821141336617

image-20240821141304962

得到flag。

4 修改签名算法

有些JWT库支持多种密码算法进行签名、验签。若目标使用非对称密码算法时,有时攻击者可以获取到公钥,此时可通过修改JWT头部的签名算法,将非对称密码算法改为对称密码算法,从而达到攻击者目的。ctfhub中这个题环境有问题,推荐大家使用其他靶场练习。

好小子,离成功又近一步!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2059329.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新手教学系列——Redis分布式锁进阶版:如何实现支持同一个Key多把锁,并带有超时重试功能

在现代分布式系统中,锁机制是解决并发访问资源问题的重要手段之一。Redis作为一个内存数据库,由于其高效的读写能力和天然的分布式特性,常常被用作实现分布式锁的基础工具。然而,如何合理地实现一个支持多把锁的Redis锁,并且在失败时支持超时重试,这是一个进阶的问题。 …

前端面试——this指向

最近看到了面试题目有关于this指向的问题,网上搜了一篇文章,看了之后受益匪浅,特地总结一下。 原文章链接:前端面试中的“this”,你真的了解吗? - 哔哩哔哩 什么是this? this是一个特殊的关键…

华为鲲鹏技术认证是什么?为什么要通过认证?

华为鲲鹏技术认证是什么? 华为鲲鹏技术认证是华为推出的一项生态合作伙伴计划,旨在积极推动从芯片到硬件系统,再到软件、服务的整个国产产业链的共建、共享、共赢。该认证要求测试产品自主可控,满足各地政府信息技术国产化替代工…

【五】阿伟开始学Kafka

阿伟开始学Kafka 概述 人生若只如初见,阿伟心里回想起了第一次和Kafka见面的场景,记忆虽然已经有些模糊,但是感觉初次见面是美好的。积累了一些实战经验之后,阿伟感觉不能再是面对百度开发了,于是决心系统的学习一下Ka…

数据库MySQL之事务、索引

目录 1.概述 2.事务 3.索引 3.1索引结构 3.2操作语法 1.概述 场景:假如我们需要解散教学部,那么该部门下的所有员工都需要删除。如果教学部成功删除了,但员工出于某些原因(比如SQL语句写错了等)并没有删除,此时就会出现数据…

Node 网络详解

Node 网络详解 1、 OSI & TCP/IP模型设计1.1 OSI七层模型应用层:(Application Layer)表示层:(Presentation Layer)会话层:(Session Layer)传输层:&#x…

Mycat分片-水平拆分

目录 场景 准备 配置 测试 续接上篇:Mycat分片-垂直拆分-CSDN博客 场景 在业务系统中, 有一张表(日志表), 业务系统每天都会产生大量的日志数据 , 单台服务器的数据存 储及处理能力是有限的, 可以对数据库表进行拆分。 准备 准备三台服务器,具体的结…

2024年Google开发者大会:AI赋能的Web、移动和云开发

一、大会概览 1.1 开幕与主题演讲 在北京国家会议中心举办的2024年Google开发者大会,是一场汇聚了全球顶尖开发者和技术爱好者的盛会。大会的开幕由Google大中华区总裁陈俊廷先生的主题演讲引领,他不仅回顾了中国开发者在全球技术舞台上的卓越表现&…

华硕飞行堡垒键盘全部失灵【除电源键】

华硕飞行堡垒FX53VD键盘全部失灵【除电源键】 前言一、故障排查二、发现问题三、使用方法总结 前言 版本型号: 型号 ASUS FX53VD(华硕-飞行堡垒) 板号:GL553VD 故障情况描述: 键盘无法使用,键盘除开机键外…

小型无人机训练与运用技术研究

1. 基础理论与概念 小型无人机(Small Unmanned Aerial Vehicle, sUAV)作为近年来快速发展的技术领域,其基础理论与概念是理解其全貌的基石。小型无人机通常指质量轻、尺寸小、易于携带和操作的无人飞行器,广泛应用于航拍、环境监…

基于yolov5 红绿灯交通检测,可对道路红绿灯进行检测可根据界面信息直接上传图片,视频等

模型训练:使用特定的数据集来训练YOLOv5模型以准确识别红绿灯。Web界面:构建一个用户友好的Web界面,让用户能够轻松上传图片或视频进行检测。性能优化:针对实时应用进行性能优化,确保检测速度足够快。部署:…

【高级IO-1】探索五种 I/O 模型及其高级I/O技术:基于 fcntl() 的代码应用

文章目录 1. 五种IO模型2. 高级IO的重要概念2.1 同步通信 与 异步通信2.2 阻塞与非阻塞2.3 如何理解四者间的关系? 3. 其他高级IO3.1 非阻塞 I/O3.2 纪录锁(Record Lock)3.3 系统 V 流机制3.4 I/O 多路复用(I/O Multiplexing&…

自养号测评技术:如何挑选适合的IP环境方案

市面上的IP服务及常见问题 当前市场上常见的IP服务包括911、Luminati、Google Fi、TM流量卡、Socks专线等。这些服务在为用户提供网络代理或VPN服务时,常会遇到以下主要问题: 1. 高负载与重复率高:由于使用人数众多,导致网络拥堵…

投入式水位计的测量精度和稳定性如何保证

投入式水位计作为水位监测的重要工具,其测量精度和稳定性直接关系到数据的准确性和可靠性。在实际应用中,多种因素会影响投入式水位计的测量精度和稳定性,了解这些因素并采取相应的措施,是确保测量准确性的关键。 1、环境因素 温度…

Tomca安装和配置教程

目录 一.背景: 二.下载和安装Tomcat: 三.配置Tomcat环境变量 四.检查Tomcat安装成功 一.背景: Tocamt是Apache软件基金会(Apache Software Fouondation)的jakarta项目中的一个核心项目,由Apache、Sun以及其他一些公司及个人共同开发而成。Tocmat是一…

微服务⽹关

微服务网关(API Gateway)是微服务架构中的一个重要组成部分,它充当客户端与后端服务之间的单一入口。API网关负责处理所有的出入请求,提供集中式的安全、路由、负载均衡、监控等功能。 主要功能: 请求路由&#xff1a…

【JAVA】阿里巴巴 EasyExcel:高效的Excel处理解决方案

文章目录 EasyExcel1. EasyExcel 简介1.1 主要特点1.2 依赖配置 2. EasyExcel 核心功能2.1 写入 Excel 文件2.2 读取 Excel 文件 3. 业务开发示例3.1 用户数据导出3.2 用户数据导入 4. 进阶用法4.1 自定义转换器4.2 自定义格式 更多相关内容可查看 附官网地址:https…

Directory Opus 添加管理员获得所有权右键菜单

Directory Opus 添加管理员获得所有权右键菜单 在windows的资源管理器中添加管理员获得所有权的右键菜单很容易,通过注册表就可以了. 但是在Directory Opus需要另外的操作方式, 点击设置->文件类型: 选择运行DOpus函数,因为我的资源管理器已经有这个右键了,就选这个: …

营运管理系统应用架构设计

集中营运系统2020年1月《银行业集中营运规范(JR/T0173-2020号)》标准由全国金融标准化技术委员会审查通过,并由中国人民银行作为银发〔2020〕10号文件正式发布。集中运营的建设核心应该围绕多元化作业和运营能力共享两大方面服务。集中营运的系统建设方向如图10-01所示。 图…

ARP协议分析

目录 实验设备和环境 实验记录 1、ARP报文分析 (1)建立实验拓扑 (2)设置抓包接口 (3)启动设备,开始抓包 (4)协议分析 ARP代理 (1)建立实…