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容器里查看执行成功

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ON1 NoNoise AI 2024 for Mac/Win:智能降噪,重塑影像之美

在数字摄影领域&#xff0c;图片质量往往受到多种因素的影响&#xff0c;其中噪点问题尤为突出。ON1 NoNoise AI 2024作为一款专为Mac和Windows平台打造的AI图片降噪工具&#xff0c;凭借其卓越的降噪性能和智能化的操作体验&#xff0c;成为了摄影师和图像处理专家们的首选工具…

bugku-web-decrypt

这里的提示解密后没有什么意义 这里下载文件包 得到一个index.php文件 得到代码 <?php function encrypt($data,$key) {$key md5(ISCC);$x 0;$len strlen($data);$klen strlen($key);for ($i0; $i < $len; $i) { if ($x $klen){$x 0;}$char . $key[$x];$x1;}for…

2023androidstudio

终于下定决心将studio升级到新版本使用了&#xff0c;在这总结下和之前的差别 问题一&#xff1a; 创建java类型的项目 在新版本studio中&#xff0c;创建android项目时&#xff0c;语言选择中没有java选项了&#xff0c;这让一直使用java开发的我摸索了好久&#xff0c;终于…

Qt QProcess详解

1.简介 QProcess提供了在 Qt 应用程序中启动外部程序的方法。通过QProcess&#xff0c;你可以启动一个进程&#xff0c;与它通信&#xff08;发送输入和读取输出&#xff09;&#xff0c;检查它的状态&#xff0c;以及等待它完成。这个类在执行系统命令、运行其他程序或脚本时…

AI大模型探索之路-应用篇11:AI大模型应用智能评估(Ragas)

目录 前言 一、为什么要做智能评估&#xff1f; 二、Ragas是什么&#xff1f; 三、Ragas使用场景 四、Ragas评估指标 五、Ragas代码实践 总结 前言 随着人工智能技术的飞速发展&#xff0c;AI大模型&#xff08;LLM&#xff09;已经成为了推动技术创新和应用的关键因素。…

深入理解信号上升沿与带宽的关系

信号的上升时间&#xff0c;对于理解信号完整性问题至关重要&#xff0c;高速pcb设计中的绝大多数问题都和它有关&#xff0c;很多信号完整性问题都是由信号上升时间短引起的&#xff0c;你必须对他足够重视。 信号上升时间并不是信号从低电平上升到高电平所经历的时间&#xf…

连接两部VR头显的type-c DP分配器方案,可以给主机设备PD反向供电与两部VR同时供电。

随着type-c的发展&#xff0c;目前越来越多的设备都在使用type-c作为连接的接口&#xff0c; 不仅是笔记本与手机在使用现在的游戏主机如&#xff08;任天堂&#xff0c;steam&#xff0c;&#xff09;或者是VR的一体机或者是VR头显也都在使用type-c作为连接接口。 type-c接口…

传统图机器学习的特征工程-全图

将整张图表示成为一个低维向量&#xff0c;反映全图的特征 key idea&#xff1a;Bag-of-Words&#xff08;BOW&#xff09;把图看作文章&#xff0c;把节点看作单词 Kernel mothods

FL Studio808鼓音在哪 FL Studio怎么让音乐鼓点更有力 FL Studio教程

FL Studio808鼓音在哪&#xff1f;808是一款电鼓机的名称&#xff0c;它发出的声音也被称之为808鼓&#xff0c;通常我们可以安装鼓机插件来使用&#xff0c;但FL Studio中自带的也有808鼓的采样音频。FL Studio怎么让音乐鼓点更有力&#xff1f;让鼓点更有力要从EQ均衡器、压缩…

ELK日志分析系统(上)

目录 引言 一、ELK日志分析系统简介 1.1 日志服务器 1.2 ELK日志分析系统的组成 1.3 日志处理步骤 二、Elasticsearch介绍 2.1 概述 2.2 核心概念 三、Logstash介绍 3.1 概述 3.2 主要组件 四、Kibana介绍 4.1 概述 4.2 主要功能 五、ELK的工作原理 六、部署ELK…

LINUX系统编程:缓冲区

1.为什么要有缓冲区 缓冲区分成语言层面的缓冲区和操作系统层面的缓冲区 先说结论&#xff0c;语言的缓冲区可以减少系统调用的次数进而提高向文件写入和读取的效率。 2.举例子 向屏幕打印&#xff0c;无非就是向屏幕这个文件的缓冲区写入&#xff0c;然后在由操作系统刷新…

js学习总结

这里写目录标题 前情提要JavaScript书写位置1. 内部javaScript (不常用)2. 外部javaScript (常用)3.内联javaScript (常用) js中的输入和输出输出语法1. document.write()2. alert()3. console.log() 输入语法prompt() 前情提要 1. 在javaScript中的 分号 是可以省略的JavaScr…

车机系统与 Android 的关系概述

前言&#xff1a;搞懂 Android 系统和汽车到底有什么关系。 文章目录 一、基本概念1、Android Auto1&#xff09;是什么2&#xff09;功能 2、Google Assistant3、Android Automotive1、Android Auto 和 Android Automotive 的区别 4、App1&#xff09;App 的开发2&#xff09;…

亚马逊云科技CTO带你学习云计算降本增效秘诀

2023亚马逊云科技一年一度的重磅春晚--Re:invent上有诸多不同话题的主题Keynote&#xff0c;这次小李哥带大家复盘来自亚马逊CTO: Wener博士的主题演讲: 云架构节俭之道1️⃣节俭对于云计算为什么重要&#xff1f; ▶️企业基础设施投入大&#xff0c;利用好降本策略可以减少巨…

个人笔记目录

目录 一、lora 微调 alpaca 笔记 二、全量微调 Llama2-7b笔记 三、Huggingface trainer 与 from_pretrained简单介绍&#xff08;笔记&#xff09; 四、vscode调试launch.json常用格式 五、huggingface generate函数简介 六、Trl: llama2-7b-hf使用QLora 4bit量化后ds zer…

Java项目-源码!大学生兼职信息系统

大学生兼职信息系统 1、功能介绍1.1、演示视频 2、系统部分功能展示2.1、管理员登录2.2、管理员功能模块2.2.1、轮播图管理2.2.2、招聘信息管理2.2.3、企业信息管理 3、系统概述4、开发环境 1、功能介绍 本文以Java为开发技术&#xff0c;实现了一个大学生兼职信息系统。 功能…

RestTemplate详解

一、概述 文章参考Spring之RestTemplate详解 1.1介绍 现如今的 IT 项目&#xff0c;由服务端向外发起网络请求的场景&#xff0c;基本上处处可见&#xff01; 传统情况下&#xff0c;在服务端代码里访问 http 服务时&#xff0c;一般会使用 JDK 的 HttpURLConnection 或者 A…

kali工具----网络映射器(Network Mapper)系统指纹

系统指纹识别 现在一些便携式计算机操作系统使用指纹识别来验证密码进行登录。指纹识别是识别系统的一个典型模式&#xff0c;包括指纹图像获取、处理、特征提取和对等模块。如果要做渗透测试&#xff0c;需要了解要渗透测试的操作系统的类型才可以。本节将介绍使用Nmap工具测试…

【OTA】STM32-OTA升级——持续更新

【OTA】STM32-OTA升级——持续更新 文章目录 前言一、ymodem串口协议1、Ymodem 协议2、PC3、蓝牙4、WIFI云平台 二、UDS车载协议1.UDS协议 总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、ymodem串口协议 1、Ymodem 协议 STM32 Ymodem …

【第三十篇】并发插件 turbo intruder 安装及使用教程

文章目录 安装使用本篇主要介绍turbo intruder的两种安装方式及使用教程。 安装 1、在BurpSuite的扩展模块的BAPP商店中找到turbo intruder,点击安装即可使用: 2、若在BurpSuite中无法直接安装,可手动添加该插件。 具体操作: 进入Github中安装: https://github.com/Po…