shiro反序列化漏洞复现(CVE-2016-4437 )

ApacheShiroRememberMe反序列化漏洞及其利用与修复
文章介绍了ApacheShiro框架中的CVE-2016-4437漏洞,涉及RememberMe功能的加密数据验证问题。详细描述了漏洞原理、影响范围、复现步骤,以及如何利用ysoserial工具进行攻击和修复建议。

1、简介

Apache Shiro是一个强大且易于使用的Java安全框架,提供认证、授权、加密以及会话管理功能。CVE-2016-4437具体涉及了Apache Shiro在使用记住我(RememberMe)功能时的反序列化漏洞。

2、漏洞原理

原因在于Apache Shiro对加密的RememberMe cookie的处理。在正常情况下,RememberMe功能让用户在返回网站时不用再次登录。为了提供这种功能,Shiro需要在客户端和服务器之间安全地传输身份验证数据。Shiro通过使用AES加密算法加密身份验证数据来实现这一点,然后将加密后的数据存储在cookie中。但是由于Shiro在版本1.2.4之前没有正确地验证加密数据,导致了可能的漏洞

3、影响范围

Apache Shiro <= 1.2.4

4、启动环境

利用docker启动vulhub环境

浏览器访问靶机IP加8080端口,搭建成功页面。

5、漏洞复现

随意输入账密点击登录并burp抓包,返回包中存在rememberMe=deleteMe字段,证明使用了shiro框架(注意:返回包中存在ememberMe=deleteMe字段,只能证明使用了shiro,并不能代表一定存在反序列化漏洞)

burp插件ShiroScan,检测到可能存在漏洞(八九不离十是存在漏洞的)

 ​​​​​​​简单说一下插件的安装,将下载好的包解压,参考下图添加插件。插件地址<

<think>我们参考了提供的引用内容,特别是引用[2]和引用[4]中关于使用Docker搭建漏洞环境的步骤。 根据引用[2]和[4],我们可以总结出以下步骤: 1. 拉取漏洞环境的Docker镜像:docker pull medicean/vulapps:s_shiro_1 2. 启动Docker容器:将容器的8080端口映射到主机的某个端口(例如8081),使用命令:docker run -d -p 8081:8080 medicean/vulapps:s_shiro_1 3. 访问搭建好的环境:http://<your_host_ip>:8081 注意:如果主机有防火墙,需要放行对应端口(如8081)。 另外,引用[5]提到可以使用shiro_exploit.py进行漏洞利用,但用户目前只需要搭建环境,所以先提供环境搭建步骤。 因此,回答将按照以下步骤进行: 1. 确保已安装Docker并启动Docker服务。 2. 拉取镜像。 3. 运行容器。 4. 验证环境。 同时,考虑到用户可能需要进行漏洞复现,我们可以在相关问题中提供漏洞复现的参考。 注意:由于引用中提到的镜像名称一致,我们使用同一个镜像。</think>### Docker搭建Apache Shiro反序列化漏洞环境(CVE-2016-4437) #### 环境搭建步骤: 1. **拉取漏洞镜像** 使用官方漏洞测试镜像(需提前安装Docker): ```bash docker pull medicean/vulapps:s_shiro_1 ``` 2. **启动容器** 将容器8080端口映射到主机端口(示例用8081): ```bash docker run -d -p 8081:8080 --name shiro_cve medicean/vulapps:s_shiro_1 ``` - `-d`:后台运行 - `-p 8081:8080`:主机端口:容器端口 - `--name`:指定容器名称 3. **防火墙配置** 若主机有防火墙(如CentOS): ```bash firewall-cmd --add-port=8081/tcp --permanent firewall-cmd --reload ``` 4. **验证环境** 访问 `http://<你的服务器IP>:8081`,出现Apache Shiro测试页面即搭建成功[^2][^4]。 --- #### 漏洞验证(可选) 使用工具验证漏洞(需额外安装Python3): ```bash # 下载利用工具 git clone https://github.com/feihong-cs/ShiroExploit.git # 执行命令检测(示例创建测试文件) python3 ShiroExploit.py -u http://<IP>:8081 -p "touch /tmp/success" ``` 若返回`[+] 漏洞存在`且在容器中查看到`/tmp/success`文件,则验证成功[^5]。 --- #### 关键说明 1. 漏洞原理:Shiro 1.2.4使用硬编码AES密钥,攻击者可通过伪造rememberMe Cookie触发Java反序列化执行任意命令[^3]。 2. 环境镜像包含: - Apache Shiro 1.2.4 - 存在漏洞的Web应用 - 集成Tomcat服务 3. 停止环境:`docker stop shiro_cve` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值