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

shiro漏洞复现及其攻击流量分析

前言

最近面试时经常被问到,每次说的都不太完美,现在再来复现一边。

shiro介绍

Apache Shiro是一个开源安全框架,提供身份验证、授权、密码学和会话管理。

CVE-2016-4437

利用vulhub搭建的靶场。

在Apache Shiro <= 1.2.4版本中存在反序列化漏洞。

该漏洞成因在于,Shiro的“记住我”功能是设置cookie中的rememberMe值来实现。当我们给rememberMe赋值时,它会经过一下过程。

  1. 检索cookie中RememberMe的值
  2. Base64解码
  3. 使用AES解密
  4. 反序列化

当我们知道了AES加解密时的密钥(该密钥是写死在代码中)时,我们便可以去修改rememberMe的值,改造其readObject()方法,让其在反序列化时执行任意操作。

服务器接收数据后的流程为

  1. 读取cookie中rememberMe值
  2. base64解码
  3. AES解密
  4. 反序列化

使用工具来执行命令。

image-20230409134603547

利用wireshark来抓取流量。

image-20230409134643553

image-20230409134652305

回显时会有一串base64加密的值,代表着命令执行成功。

image-20230409134742636

总结:CVE-2016-4437的攻击流量特征有

  1. 请求包Cookie的rememberMe中会存在AES+base64加密的一串java反序列化代码。
  2. 返回包中存在base64加密数据,该数据可作为攻击成功的判定条件。

如果攻击者利用其反弹shell,还可以通过对rememberMe中的数据解码来获得反弹的ip地址。

shrio550和721的区别

  1. 主要区别在于Shiro550使用已知默认密码,只要有足够的密码,不需要Remember Cookie的
  2. Shiro721的ase加密的key为系统随机生成,需要利用登录后的rememberMe去爆破正确的key值。利用有效的RememberMe Cookie作为Padding Oracle Attack的前缀,再去构造反序列化攻击。

CVE-2020-1957

在Spring web项目中,请求URI/resource/menus和/resource/menus/都可以访问到服务器的资源。

但在Shiro中的URL路径表达式pathPattern可以正确匹配/resource/menus,但不能正确匹配/resource/menus/,导致过滤链无法正确匹配,从而绕Shiro的防护机制

直接访问/xxx/…;/admin/可以绕过权限校验访问到管理页面

image-20230409183223703
该漏洞的流量分析只能去看请求头加ip的访问频繁次数来判断是否为测试。
image-20230409183453682


http://www.kler.cn/a/7515.html

相关文章:

  • 【HAProxy09】企业级反向代理HAProxy高级功能之压缩功能与后端服务器健康性监测
  • 创建vue+electron项目流程
  • 猎板PCB罗杰斯板材的应用案例
  • MySQL:表设计
  • 用户自定义IP核——ZYNQ学习笔记6
  • 无人机检测车辆——多目标检测
  • 【Nowcoder-BC146.添加逗号 -OR63.删除公共字符】
  • 【蓝桥杯】【省赛真题】
  • 类方法与类变量与main方法语法
  • 有哪些 python 的在线练习题或编程挑战的网站?
  • 4.6---Spring框架之Spring的AOP理解(复习版本)
  • 一致性哈希的简单认识
  • 蓝牙耳机品牌哪个音质好佩戴舒适性?2023年蓝牙耳机盘点
  • 【Redis】数据结构 - Set
  • 刷题_28:反转部分单向链表 and 猴子分桃
  • 今年晋升本没抱希望,已有绩效更好的同事将参加晋升,leader却临时让我也去答辩,怀疑自己被拉去陪跑,该怎么办?...
  • Spring依赖注入详解
  • Linux中滴计划任务
  • 普通人怎么用ChatGPT-ChatGPT中文版网页
  • CarSim仿真快速入门(二十四)-CarSimSimulink联合仿真中的输入和输出IO接口
  • 元宇宙与网络安全
  • three.js实现3d球体树状结构布局——树状结构的实现
  • GDOI 2023 游记
  • 【软件设计师07】程序设计语言与语言处理程序基础
  • UVM response_handler和get_response机制
  • 《C++开发技能树》004 语言类·指针和内存管理·glibc的内存实现ptmalloc