当前位置: 首页 > article >正文

JWT安全:假密钥.【签名随便写实现越权绕过.】

JWT安全:假密钥【签名随便写实现越权绕过.】

JSON Web 令牌 (JWT)是一种在系统之间发送加密签名 JSON 数据的标准化格式。理论上,它们可以包含任何类型的数据,但最常用于在身份验证、会话处理和访问控制机制中发送有关用户的信息(“声明”)。
与传统会话令牌不同,服务器所需的所有数据都存储在客户端的 JWT 本身中。这使得 JWT 成为高度分布式网站的热门选择,因为用户需要与多个后端服务器无缝交互。

目录:

JWT安全:假密钥【签名随便写实现越权绕过.】

实战案例:签名随便写可以绕过【实现越权】

1. 使用普通用户进行登录.

2. 修改JWT数据中的签名信息,实现越权.

(1)修改第一个地方,访问管理员页面.

(2)修改第二个地方进行测试.

(3)测试完成之后修改一下这个,后面实战中用来替换.

3. 实战中的应用测试.

(1)把上面复制的JWT数据用来替换,正常申请的数据包.


JWT 格式:头【签名的算法】.具体内容【修改字段】.签名

漏洞的产生:开发为了省事,没有按规定的去走,所以产生了漏洞.


理解:把cookie字段变成了这个JWT字段,用这个去验证用户身份.

(1)使用base64编码进行录进来的

(2)三个字段是使用用点 . 分隔

(3)字段最后面的签名是用来验证用户信息的


Burp Suite 插件的安装.


实战案例:签名随便写可以绕过【实现越权】

靶场链接:https://portswigger.net/web-security/jwt


1. 使用普通用户进行登录.


2. 修改JWT数据中的签名信息,实现越权.【从普通用户改个管理员用户】

(1)修改第一个地方,访问管理员页面.【把这个修改为管理员的页面URL】


(2)修改第二个地方进行测试.【把普通用户直接修改为管理员用户】【administrator】

解释说明:如果可以直接登录成功,说明他不验证 JWT 中的签名,导致存在这个漏洞 实现越权。


(3)测试完成之后修改一下这个,后面实战中用来替换.


3. 实战中的应用测试.

(1)把上面复制的JWT数据用来替换,正常申请的数据包.【JWT数据是用户身份】

注意:替换全部包中的JWT数据和访问页面.


   

   

    

http://www.lryc.cn/news/2392275.html

相关文章:

  • Python爬虫实战:抓取百度15天天气预报数据
  • RV1126 + FFPEG多路码流项目
  • NodeJS 基于 Koa, 开发一个读取文件,并返回给客户端文件下载,以及读取文件形成列表和文件删除的代码演示
  • 为什么在我的Flask里面有两个路由,但是在网页里有一个却不能正确访问到智能体
  • 哈工大计算机系统2024大作业——Hello的程序人生
  • 2025年软件测试面试八股文(含答案+文档)
  • 【仿生系统】qwen的仿生机器人解决方案
  • Flutter3.22适配运行鸿蒙系统问题记录
  • 秋招Day10 - JVM - 内存管理
  • Spring Boot 3.5.0中文文档上线
  • Redisson学习专栏(一):快速入门及核心API实践
  • Pandas学习入门一
  • 基于Piecewise Jerk Speed Optimizer的速度规划算法(附ROS C++/Python仿真)
  • 关于 JavaScript 版本、TypeScript、Vue 的区别说明, PHP 开发者入门 Vue 的具体方案
  • 中断和信号详解
  • STM32八股【10】-----stm32启动流程
  • 游戏引擎学习第312天:跨实体手动排序
  • 智警杯备赛--数据库管理与优化及数据库对象创建与管理
  • MySQL 在 CentOS 7 环境下的安装教程
  • K8S集群主机网络端口不通问题排查
  • 【Elasticsearch】retry_on_conflict
  • Android Cameara2 + MediaRecorder 完成录像功能
  • python打卡day39
  • 3.8.5 利用RDD统计网站每月访问量
  • 尚硅谷redis7 49-51 redis管道之理论简介
  • Spring Boot + MyBatis-Plus实现操作日志记录
  • JavaScript入门基础篇-day03
  • Leetcode-5 好数对的数目
  • openEuler安装MySql8(tar包模式)
  • Opencv实用操作6 开运算 闭运算 梯度运算 礼帽 黑帽