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

shiro漏洞复现

目录

  • shiro介绍
    • 框架介绍
    • 判断是否使用shiro框架
  • 环境搭建
  • CVE-2010-3863
    • 漏洞原理
    • 影响版本
    • 漏洞复现
  • CVE-2016-4437
    • 漏洞原理
    • 影响版本
    • 漏洞复现
  • CVE-2020-1957
    • 漏洞原理
    • 影响版本
    • 漏洞复现
  • shiro-721
    • 拉取环境
    • 漏洞原理
    • 漏洞复现

shiro介绍

框架介绍

Apache Shiro提供了认证、授权、加密和会话管理功能,将复杂的问题隐藏起
来,提供清晰直观的API使开发者可以很轻松地开发自己的程序安全代码。
Shiro将目标集中于Shiro开发团队所称的“四大安全基石”-认证
(Authentication)、授权(Authorization)、会话管理(Session
Management)和加密(Cryptography)

  • 认证(Authentication):用户身份识别。有时可看作为“登录(login)”,它
    是用户证明自己是谁的一个行为。
  • 授权(Authorization):访问控制过程,好比决定“认证(who)”可以访问
    “什么(what)”.
  • 会话管理(SessionManagement):管理用户的会话(sessions),甚至在
    没有WEB或EJB容器的环境中。管理用户与时间相关的状态。
  • 加密(Cryptography):使用加密算法保护数据更加安全,防止数据被偷
    窥。

判断是否使用shiro框架

cookie中添加rememberMe字段,返回包中发现cookie信息中存在rememberMe=deleteMe
在这里插入图片描述

环境搭建

使用docker搭建vulhub靶场
下载vulhub文件

git clone https://github.com/vulhub/vulhub.git

在这里插入图片描述
下载之后,有很多的组件、cms漏洞类型
cd 到shiro 文件夹
在这里插入图片描述
在这里插入图片描述
进入要开启的环境
在这里插入图片描述
对靶场进行编译

docker-compose build

运行漏洞环境

docker-compose up -d

查看当前运行环境

docker ps

在这里插入图片描述
可以看到开放的端口号
在服务器上搭建时,记得添加一下防火墙策略
访问靶场的8080端口,搭建成功
在这里插入图片描述

CVE-2010-3863

漏洞原理

在Apache Shiro 1.1.0以前的版本中,shiro 进行权限验证前未对url 做标准化处
理,攻击者可以构造/、//、/./、/…/ 等绕过权限验证。

影响版本

shiro < 1.1.0和JSecurity 0.9.x

漏洞复现

直接访问/admin时,会重定向到登录页面
访问/./admin
在这里插入图片描述
成功登录admin页面
在这里插入图片描述

CVE-2016-4437

漏洞原理

属于shiro550漏洞。

Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为
remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,
触发Java反序列化漏洞,进而在目标机器上执行任意命令。
shiro默认使用CookieRememberMeManager,对rememberMe的cookie做了加密
处理,在CookieRememberMeManaer类中将cookie中rememberMe字段内容先后
进行序列化、AES加密、Base64编码操作。在识别身份的时候,需要对Cookie里
的rememberMe字段解密。根据加密的顺序可以推断出解密的顺序为获取cookiebase64解码-AES解密-反序列化。

影响版本

Apache Shiro <= 1.2.4

漏洞复现

在这里插入图片描述
工具:https://github.com/SummerSec/ShiroAttack2/releases
在这里插入图片描述
找到了key,再爆破利用链
在这里插入图片描述
执行命令,成功
在这里插入图片描述

CVE-2020-1957

漏洞原理

我们需要分析我们请求的URL在整个项目的传入传递过程。在使用了shiro的项目
中,是我们请求的URL(URL1),进过shiro权限检验(URL2),昀后到springboot项目
找到路由来处理(URL3)
漏洞的出现就在URL1,URL2和URL3 有可能不是同一个URL,这就导致我们能
绕过shiro的校验,直接访问后端需要首选的URL。本例中的漏洞就是因为这个原
因产生的。
Shiro框架通过拦截器功能来对用户访问权限进行控制,如anon, authc等拦截器。
anon为匿名拦截器,不需要登录即可访问;authc为登录拦截器,需要登录才可以
访问。

影响版本

Apache Shiro < 1.5.2

漏洞复现

点击login
在这里插入图片描述
访问/admin时会重定向
因为代码层面加上;就会识别成绕过 后面加个/也可以
URL改为/xxx/…;/admin/绕过了登录,直接访问成功!
在这里插入图片描述

shiro-721

拉取环境

文件里没有shiro-721,得自己下载一下
git clone https://github.com/3ndz/Shiro-721.git
cd Shiro-721/Docker
docker build -t shiro-721 .
docker run -p 8080:8080 -d shiro-721

漏洞原理

在用户进行登录的时候,Apache Shiro 提供 RemenberMe 功能,可以存储 cookie,期间使用的是AES-128-CBC进行加密,可以通过Padding Oracle加密生成的攻击代码来重新构造一个恶意的 rememberMe 字段,重新请求网站,进行反序列化攻击,最终导致任意代码的执行,攻击者无需知道 rememberMe 的加密密钥。

漏洞复现

在这里插入图片描述
在这里插入图片描述
直接使用工具
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.mrgr.cn/news/28391.html

相关文章:

  • DBeaver 连接 OceanBase Oracle 租户
  • LabVIEW弧焊参数测控系统
  • 【Hadoop】【hdfs】【大数据技术基础】实验三 HDFS 基础编程实验
  • 探索IDE的无限可能:使用技巧与插件推荐
  • 缓存冲突(Cache Conflict)
  • <tauri><websocket>tauri集成web端使用websocket实现数据通讯
  • 单硬盘安装Win10和麒麟V10双系统指导建议
  • 【C++题目】1.日期差值
  • WLAN实验简述
  • 学习图解算法 使用C语言
  • 回归预测|基于遗传优化卷积神经网络的数据回归预测Matlab程序GA-CNN 多特征输入单输出 附赠基础CNN
  • 纯小白安装pytorch(快速上手)
  • 3.4.3 __ipipe_init_early之初始化root domain
  • 【全网最详细】LSS代码与理论解读(系列文章导读)
  • 第二百三十四节 JPA教程 - JPA ID表生成器示例
  • 谷歌在在线展示广告技术上的垄断,Meta无法有效竞争
  • Linux命令:文本处理工具sed详解
  • Linux whereis和which的区别
  • Vue2源码解读
  • 启动windows更新/停止windows更新,在配置更新中关闭自动更新的方法
  • 深入了解字符函数和字符串函数
  • 深度学习之微积分预备知识点
  • 【C++】模板进阶:深入解析模板特化
  • 类和对象补充
  • Linux常用命令以及操作技巧
  • 智能体趋势:未来科技的核心驱动力