【网络安全】JWT安全漏洞

news2024/12/27 9:51:16

jwt安全漏洞

    • 什么是JWT
    • JWT验证流程
    • 漏洞介绍
        • 方法一:伪造JWT
        • 方法二:爆破密钥

什么是JWT

Json Web Token(JWT)
JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在两个组织之间传递安全可靠的信息。
在这里插入图片描述
JWT是一个有着简单的统一表达形式的字符串:

在这里插入图片描述
头部(Header)
头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。 JSON内容要经Base64 编码生成字符串成为Header。

载荷(PayLoad)
payload的五个字段都是由JWT的标准所定义的。

  1. iss: 该JWT的签发者
  2. sub: 该JWT所面向的用户
  3. aud: 接收该JWT的一方
  4. exp(expires): 什么时候过期,这里是一个Unix时间戳
  5. iat(issued at): 在什么时候签发的
    后面的信息可以按需补充。 JSON内容要经Base64 编码生成字符串成为PayLoad。

签名(signature)
这个部分header与payload通过header中声明的加密方式,使用密钥secret进行加密,生成签名。 JWS的主要目的是保证了数据在传输过程中不被修改,验证数据的完整性。但由于仅采用Base64对消息内容编码,因此不保证数据的不可泄露性。所以不适合用于传输敏感数据。

在这里插入图片描述

JWT验证流程

首先,前端通过web表单将自己的用户名和密码发送到后端的接口。这一过程一般是一个HTTP POST请求。建议的方式是通过SSL加密的传输(https协议),从而避免敏感信息被嗅探。

后端核对用户名和密码成功后,形成一个JWT Token。

后端将JWT字符串作为登录成功的结果返回给前端。前端可以将返回的结果保存在localStorage或sessionStorage中,退出登录时前端删除保存的JWT即可。

前端在每次请求时将JWT放入HTTP Header中的Authorization字段。

后端校验前端传来的JWT的有效性。

验证通过后,后端使用JWT中包含的用户信息进行其他逻辑操作,返回相应结果。
————————————————
版权声明:本文为CSDN博主「kali_Ma」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kali_Ma/article/details/121609999

漏洞介绍

我们可以通过伪造jwt的方式来伪装以达成认证通过的目的,从而进一步入侵服务器

方法一:伪造JWT

  1. 把头部加密方式修改为空
    在这里插入图片描述
  2. 舍弃签名部分,与载荷进行拼接形成新的jwt(无加密方式所以不会生成签名)
    在这里插入图片描述
  3. 去除=号

因为http传输过程中,base64编码中“=”。“+”,“/”等特殊符号通过url解码通常容易产生歧义,因此产生了与url兼容的base64 url编码

拼接完成后得到:
eyJhbGciOiIifQ.ewocc3ViHRocMTIzNDU2Nzg5MB0MChxuYW1lHToiSm9obiBEb2UiLAoiaWF0IjoxNTE2MjM5MDIyCn0.

tips:需要用.隔开

方法二:爆破密钥

通过脚本对密钥进行爆破从而构造新的jwt达成伪造目的

爆破代码

脚本暂时未找到,待补充

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

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

相关文章

北大软件DHR产品,提供一站式、全方位的数字化人力资源管理解决方案

近年来,随着数字化时代的到来,国有企业的人力资源管理方式也需要不断地更新和升级。数字化转型已成为国企人力资源管理的新趋势,加快数字化转型已经成为国企提高核心竞争力的必然选择。 作为北大软件旗下的全新一代人力资源数字化产品&#…

SpringSession

session在负载均衡下丢失的原因: 在使用Nginx做负载均衡时候,session丢失情况,原因在于你登录了一台服务器,但是比如Nginx用的轮询策略,下次访问时候,连接的是另外一台服务器,那么就出现了Session丢失 如果Nginx的负载均衡策略是ip_hash 由于服务器的ip和端口是固…

中国社会科学院大学与美国杜兰大学金融管理硕士——只要出发就会顺利抵达彼岸

新的地方会发生新的故事,新的相遇会碰撞出新的火花。只要出发,我们就会顺利抵达我们想去的远方。就像选择在社科院杜兰大学金融管理硕士项目读研的我们,在这里与来自全国各地的精英同学相聚,共享行业前沿资讯,聆听名师…

【SAS应用统计分析】数据的描述性统计分析

声明:本文知识参考内容来自网络,如有侵权请联系删除。本文还参照了B站up主庄7的课程内容【公开课】数据分析与SAS【15课】 目录 实验原理 描述性统计量 1.反映数据集中趋势的特征量 2.反映数据离散程度的特征量 3.反映数据分布形状的特征量 数据的…

JavaScript经典教程(六)-- JavaScript基础 -- Array常用方法详解

187-Array常用方法详解 1、Array - 数组 (1)两种声明方式 1、简化 2、以对象形式声明 var a [1 , 2 , 3]; var b new Array(1 , 2 , 3);a是b的简化,都是对象形式,但没有两个一样的对象。 3、用new声明数组时,如…

MySQL知识学习01

1、什么是关系型数据库? 顾名思义,关系型数据库(RDBMS,Relational Database Management System)就是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系(一对一、一对多、多对多&am…

【LeetCode:64. 最小路径和 | 暴力递归=>记忆化搜索=>动态规划 】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【QT5:CAN卡通信的上位机-加入示波器-界面优化与修饰+解析功能编写+进阶样例(2)】

【QT5:CAN卡通信的上位机-加入示波器-界面优化与修饰解析功能编写进阶样例2】 1、概述2、实验环境3、自我总结和提升4、事先声明5、效果展示6、功能代码部分的解析1)自定义组合功能函数2)数据解析部分3)示波器接收部分 7、界面修饰部分1&…

NFT Insider #93:The Sandbox启动Mega City 3土地销售,YGG​与AlphaTitans合作

引言:NFT Insider由NFT收藏组织WHALE Members、BeepCrypto联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周报将从NFT市场数据,艺术新闻类,游戏新闻类,虚拟世界类&#…

一文带你了解MySQL数据库Innodb_buffer_pool_size

前言 上篇文章介绍了MySQL中的存储引擎层主要负责数据的写入和读取,与底层的文件进行交互。MySQL在5.5 版本以后,MySQL默认存储引擎为 InnoDB,他的主要特性有: DML 操作(增、删、改)遵循 ACID(事务安全表) 模型,支持事…

【Linux从入门到精通】Linux常用基础指令(下)

本篇文章接上篇文章(【Linux从入门到精通】Linux常用基础指令(上)、【Linux从入门到精通】Linux常用基础指令(中))进行详解。本章的指令相对没有那么常用,难度相对适中。同时也讲述了几个热键。…

编程式导航路由跳转到当前路由(参数不变),多次执行会抛出NavigatorDuplicated的禁告错误?

重写push与replace方法 编程式导航路由跳转到当前路由(参数不变),多次执行会抛出NavigatorDuplicated的禁告错误? 路由跳转有俩种形式:声明式导航,编程式导航 声明式导航没有这类问题的,因为…

【精华】WiderPerson数据集介绍及标签转换(YOLO格式)

文章目录 &#xff08;1&#xff09;WiderPerson数据集详情<1> 应用项目<2> 数据集地址<3> 归属单位<4> 详细介绍<5> 数据下载及格式介绍 &#xff08;2&#xff09;WiderPerson转YOLO格式<1> 文件夹结构<2> 数据可视化<3> YO…

全国计算机等级三级网络技术试卷详解(三)

请点击↑关注、收藏&#xff0c;本博客免费为你获取精彩知识分享&#xff01;有惊喜哟&#xff01;&#xff01; 1.下列关于RPR技术的描述中&#xff0c;错误的是&#xff08;&#xff09;。 A) RPR与FDDI一样使用双环结构 B) 在RPR环中&#xff0c;源节点向目的节点成功发出…

JVM(Java虚拟机)

目录 1.JVM 简介 2. JVM 运行时数据区 2.1程序计数器 2.栈 3.堆 4.方法区 3.类加载 1.loading 2.linking 1.验证 2.准备 3.解析 3.Initializing 4.双亲委派模型 5.JVM垃圾回收机制 1.劣势 2.回收什么 3.垃圾回收具体怎么回收 1.找垃圾 方法: 问题: 2.释放…

4月JAVA面试太难,吃透这份JAVA架构面试笔记后,成功涨到30K

昨天跟一位高级架构师的前辈聊天时&#xff0c;聊到今年的面试。有两个感受&#xff0c;一个是今年面邀的次数比往年要低不少&#xff0c;再一个就是很多面试者准备明显不足。不少候选人能力其实不差&#xff0c;进入团队干活后达到期望不难&#xff0c;但由于没准备或不会表达…

快速响应 智慧应急|大势智慧亮相第三届武汉国际安全应急博览会

4月26日至4月28日&#xff0c;第三届武汉国际安全应急博览会&#xff08;后简称“应博会”&#xff09;在湖北武汉顺利举办。本次展会&#xff0c;大势智慧以实时三维重建能力为核心&#xff0c;提供各类应急场景的技术支撑&#xff0c;助力应急处置和救援等方面的应用。 展会…

基于AI技术的智能考试系统设计与实现(论文+源码)_kaic

摘 要 随着当今世界互联网信息技术的飞速发展&#xff0c;互联网在人们生活中的应用越来越广泛&#xff0c;在线考试成为选拔人才的重要方法。实现一个基于AI技术的智能考试系统&#xff0c;该系统采用Java编程语言实现。通过使用自然语言处理技术和机器学习算法&#xff0c;该…

【C++】入门

目录 1. 什么是C2. 命名空间2.1 命名空间的定义2.2 命名空间的使用 3. 输入和输出4. 缺省参数4.1 概念4.2 分类 5. 函数重载5.1 函数重载概念5.2 为什么支持函数重载 6. 引用6.1 概念6.2 特性6.3 常引用6.4 指针与引用的区别 7. 内联函数7.1 特性 1. 什么是C C语言是结构化和模…

【c语言】五大内存区域 | 堆区详解

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…