Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)
目录
1、Apache Shiro简介
2、漏洞原理
关键因素:
漏洞分析:
漏洞特征:
3、影响版本
4、漏洞复现
任意命令执行
GETSHELL
防御措施
1、Apache Shiro简介
Apache Shiro是一个Java安全框架,执行身份验证、授权、密码和会话管理。
2、漏洞原理
Apache Shiro框架提供了记住我(rememberMe)的功能,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问。Shiro对rememberMe的cookie做了加密处理,shiro在CookieRememberMeManage类中将cookie中rememberMe字段内容分别进行序列化、AES加密、Base64编码。
- 检索RememberMe Cookie的值
- Base 64解码
- AES解密(加密密钥硬编码)
- 进行反序列化操作(未过滤处理)
攻击者可以使用Shiro的默认密钥构造恶意序列化对象进行编码来伪造用户的Cookie,服务端反序列化时触发漏洞,从而执行命令。
关键因素:
AES的加密密钥在Shiro的1.2.4之前版本中使用的是硬编码: KPH+blxk5D2deZilxcaaaA==,只要找到密钥后就可以通过构造恶意的序列化对象进行编码,加密,然后作为Cookie加密发送,服务端接收后会解密并触发反序列化漏洞。在1.2.4之后,ASE秘钥就不为默认了,需要获取到Key才可以进行渗透。
漏洞分析:
Apache Shiro默认使用了CookieRememberMeManage,其处理cookie是的流程是:得到rememberMe的cookie值 > Base64解码 > AES解密 > 反序列化。然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞
漏洞特征:
在返回包的Set-Cookie中存在rememberMe=deleteMe字段
3、影响版本
Apache Shiro <= 1.2.4
4、漏洞复现
任意命令执行
(这里也可以使用收集的硬编码来做,我使用工具运行,其原理一样的)
漏洞环境搭建采用vulhub,具体方式,这里不在赘述。环境启动后,浏览器访问一下,8080端口映射
使用BP工具查看下数据包,是否存在我们的漏洞条件:
使用工具:
GitHub地址:GitHub - feihong-cs/ShiroExploit-Deprecated: Shiro550/Shiro721 一键化利用工具,支持多种回显方式Shiro550/Shiro721 一键化利用工具,支持多种回显方式. Contribute to feihong-cs/ShiroExploit-Deprecated development by creating an account on GitHub.https://github.com/feihong-cs/ShiroExploit工具使用后,我们可以输入些自己想要输入的命令:
这里我就简单创建个文件,以达到我们想要的效果
进入docker容器,查看创建文件是否成功,很显然,成功创建czz
GETSHELL
不仅可以执行任意命令,也可以反弹shell:
使用kali来进行监听,并用我们的工具来做反弹shell;(这个工具比较简单方便)
在kali下我们成功得到客户端的shell,成功getshell
复现成功!
防御措施
- 升级Shiro到最新版本
- WAF拦截Cookie中长度过大的rememberMe值
通过看了这位大佬的博客,学习到了shiro反序列化漏洞,也推荐给大家。
Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437) – 大鸟安全
Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)相关推荐
- shiro反序列化工具_Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)源码解析
Apache Shiro Apache Shiro是一个功能强大且灵活的开源安全框架,主要功能包括用户认证.授权.会话管理以及加密.在了解该漏洞之前,建议学习下Apache Shiro是怎么使用. d ...
- Shiro的Java原生反序列化漏洞
参考: http://www.lmxspace.com/2019/10/17/Shiro-%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E8%AE%B0%E5%BD%95/ ...
- Apache Shiro Padding Oracle Attack (Shiro-721)漏洞复现
Apache Shiro Padding Oracle Attack (Shiro-721)漏洞复现 环境搭建 安装git 使用dockerfile 启动docker 获取dockerfile 查看是 ...
- shiro反序列化漏洞学习(工具+原理+复现)
工具准备 1.java8 C:\Program Files\Java 2.冰蝎 C:\Users\ali\Desktop\tools\Behinder_v4.0.6 3.shiro反序列化 图形化工具 ...
- 经典的Shiro反序列化漏洞分析
更多黑客技能 公众号:小道黑客 作者:掌控安全-holic 0x01.前言 相信大家总是面试会问到java反序列化,或者会问到标志性的漏洞,比如shiro反序列化,或者weblogic反序列化漏洞. ...
- java反序列化漏洞的一些gadget
目录 0x00 URLDNS 0x01 Commons Collections 0x02 RMI的codebase任意代码执行 0x03 JNDI 0x04 LDAP 0x05 JDK7u21 首先说 ...
- Apache Shiro<=1.2.4反序列化RCE漏洞
版本:Apache Shiro<=1.2.4 介绍:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理. 漏洞原因:因为shiro对cookie里的r ...
- Apache Shiro RememberMe 1.2.4 反序列化过程命令执行漏洞【原理扫描】
文章目录 一.分析定位 1. 漏洞描述 2. 项目引发漏洞简述 二. 若依系统 2.1. 版本升级 2.2. 配置文件 2.3. 推荐做法 2.4. 栗子 2.5. 项目场景 三.Gus系统 3.1. ...
- Apache Shiro Java 反序列化漏洞分析
Shiro概述 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.目前在Java web应用安全框架中,最热门的产品有Spring Security和Sh ...
最新文章
- 异步系统接口调用流程图
- Macbook Pro休眠唤醒后后台运行程序被关闭的解决方法
- 庆贺:在国产平台上成功运行gluegen/jogl 2.3.2
- timesat数据如何读取_【续篇】如何通过HART协议将流量计实时数据读取到上位机(文末有彩蛋)...
- 《非洲归来 不必远方》读后感
- 应用安全设计规范--模板
- PhotoShop 将图片裁剪为圆形 并加边框
- The Oregon Trail 俄勒冈之旅
- 学Python编程好找工作吗?岗位方向多吗?
- Win10 提示WerFault.exe 应用程序错误解决方法(非常规方法)
- 活动报道 | 四家香港科大EMBA校友所在企业荣登“中国卓越管理公司”第三届榜单...
- Android应用分身检测
- python数据分析(三)——pandas缺失值处理
- 【译】Rust 实现一个 DNS 客户端,我从中学到什么
- 怎么学习电脑板编程c语言,电脑编程c语言学习
- python如何输入一个数_Python 数据的输入
- 美东部网站宕机后续:1100万路由器和摄像头仍在公网“裸奔”
- 线性代数 |矩阵【运算、逆、转置】
- mysql中文乱码server_mysql中文乱码解决方法
- 19种音频格式介绍及音质压缩比的比较 1