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

网安-JWT

认证的方式:

session+cookie、jwt、token

Session认证机制

需要配合Cookie才能实现。由于 Cookie默认不支持跨域访问 ,所以,当涉及到前端跨域请求后端接口的时候,需要做 很多额外的配置,才能实现跨域Session认证。

JWT(英文全称:JSON Web Token)

是一个开放标准(RFC 7519),用于在双方之间安全地表示声明。一种无状态的认证机制,通常用于授权和信息交换。是目前最流行的跨域认证解决方案。

authlab-Leaky JWT

Header:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.

Payload:

eyJsZXZlbCI6ImFkbWluIiwicGFzc3dvcmQiOiIyYWM5Y2I3ZGMwMmIzYzAwODNlYjcwODk4ZTU0OWI2MyIsInVzZXJuYW1lIjoiam9lIn0.

Signature:

6j3NrK-0C7K8gmaWeB9CCyZuQKfvVEAl4KhitRN2p5k 

解密后,得到账号和MD5加密的密码:

 解密得,为Password1 

从安全性的角度来看,至少存在两个潜在的问题。

1.缺乏机密性-我们能够轻松解码有效载荷payload(和报头header)。
2.用户插入另一个操作(例如删除)并绕过授权 ,Signature可以设为none。

具体实现方式

1.算法为none
2.算法修改
3.签名失败问题
4.暴力破解
5.密钥泄露
6.令牌刷新

攻击思路

首先找到需要JWT鉴权后才能访问的页面,如个人资料页面,将该请求包重放测试:

1.未授权访问:删除Token后仍然可以正常响应对应页面
2.敏感信息泄露:通过JWt.io解密出Payload后查看其中是否包含敏感信息,如弱加密的密码等
3.破解密钥+越权访问:通过JWT.io解密出Payload部分内容,通过空加密算法或密钥爆破等方式实现重新签发Token并修改Payload部分内容,重放请求包,观察响应包是否能够越权查看其他用户资料
4.检查Token时效性:解密查看payload中是否有exp字段键值对(Token过期时间),等待过期时间后再次使用该Token发送请求,若正常响应则存在Token不过期
5.通过页面回显进行探测:如修改Payload中键值对后页面报错信息是否存在注入,payload中kid字段的目录遍历问题与sql注入问题

authlab-JWT None Algorithm

看到一个存在的用户成功登录

抓包修改header中alog值为none,尝试用不存在的用户登录

成功访问,实现越权访问

ctfhub

弱密钥

尝试用admin和admin登录,得到token

 alg设为none,role中guest换成管理员admin

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

相关文章:

  • 1、黑马点评复盘(短信登录-Session或Redis实现)
  • BUUCTF(web)部分题解
  • Redis 的事务机制是怎样的?
  • 模仿学习(Imitation Learning, IL)和监督学习(Supervised Learning, SL)区别
  • Python--Tkinter--标准 GUI 工具包
  • STL学习(?函数对象,谓词,内建函数对象)
  • Hexo - 免费搭建个人博客05 - 更新个人博客
  • DAY 22 复习日
  • 【提示词技巧】高级提示方法与框架
  • 第七章 Pytorch构建模型详解【构建CIFAR10模型结构】
  • 【WRF】根据自动安装脚本安装 WRF / WRF-CHEM等
  • Google Chrome V8< 14.0.221 类型混淆漏洞
  • linux中如何清除history命令
  • IAR Embedded Workbench for ARM 8.1 安装教程
  • 有没有能读懂PDF里手写批注的工具?
  • C# 值类型与引用类型的储存方式_堆栈_
  • 基于Kafka实现简单的延时队列
  • 【JVM】从 JVM 整体说明 JVM 运行的完整流程
  • C#与WPF使用mvvm简单案例点击按钮触发弹窗
  • 基于阿里云平台的文章评价模型训练与应用全流程指南
  • nginx.conf配置文件以及指令详解
  • 人工智慧是引擎,人类是方向盘:Vitalik对AI未来的深刻反思
  • 关于SPring基础和Vue的学习
  • rust嵌入式开发零基础入门教程(六)
  • 什么是MySQL 视图
  • 综合实验(3)
  • 暑期自学嵌入式——Day06(C语言阶段)
  • 7月23日星期三今日早报简报微语报早读
  • 51c大模型~合集158
  • Vue 3 组件通信全解析:从 Props 到 Pinia 的深入实践