【漏洞复现】Apache_Shiro_1.2.4_反序列化漏洞(CVE-2016-4437)

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规

文章目录

说明 内容
漏洞编号 CVE-2016-4437
漏洞名称 Apache_Shiro_1.2.4_反序列化漏洞
漏洞评级 高危
影响范围 Shiro <= 1.2.5
漏洞描述 Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令
修复方案 修改默认秘钥 升级

1.1、漏洞描述

Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。

Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。

漏洞原理:

Apache shiro框架提供了记住我的功能(Rememberme),用户登录成功后生成经过加密并编码的cookie。cookie的key为rememberme,cookie的值是经过对相关的信息进行序列化,然后实用aes加密,最后在使用b ase64编码处理形成的。

在服务端接收到cookie值时,按照如下步骤来解析处理:

复制代码
1、检索RememberMe cooike的值
2、b ase 64解码
3、使用aes解密(加密秘钥硬编码)
4、进行反序列化操作(未做过过滤处理)
在调用反序列化时未进行任何过滤,导致可以出发远程代码执行漏洞

利用条件:

由于使用了aes加密,想要成功利用漏洞则需要获取ase的加密秘钥,而在shiro的1.2.4之前的版本中使用的硬编码。其中默认秘钥的b ase64编码后的值为kPH+bIxk5D2deZiIxcaaaA==,这里就可以通过构造恶意的序列化对象进行编码,加密,然后欧威cooike加密发送,服务端接受后会解密并触发反序列化漏洞。

尽管目前已经更新了许多版本,官方并没有反序列化漏洞本身解决方法,而是通过去掉硬编码的秘钥,使其每次生成一个密码来解决给漏洞。但是目前一些开源系统、教程范例代码都使用了固定的编码,这里可以通过搜索引擎,github等来收集秘钥,通过漏洞检查与利用的成功率

1.2、漏洞等级

高危

1.3、影响版本

Shiro <= 1.2.5

1.4、漏洞复现

1、基础环境

Path:Vulhub/shiro/CVE-2016-4437


启动测试环境:

bash 复制代码
sudo docker-compose up -d

访问http://your-ip:{端口}/即可看到,可使用admin:vulhub进行登录

2、漏洞分析

未登录的情况下,请求包中的cookie没有rememberMe字段,返回包set-cookie里面也没有deleteme字段

登录失败的话,不管勾选RememberMe字段没有,返回包都会有remeberme=deleteme字段

不勾选RememberMe字段,登陆成功的话,返回包set-Cookie会有rememberMe=deleteMe字段。但是之后的所有请求中Cookie都不会有rememberMe字段

勾选RememberMe字段,登陆成功的话,返回包set-Cookie会有经过加密后的rememberMe=deleteMe字段,还会有rememberMe字段,之后的所有请求中Cookie都会有rememberMe字段

3、漏洞验证

利用Shiro_exploit这样的exp工具

反弹到kali机器上

反弹Shell成功

相关推荐
渣渣盟4 小时前
Apache Flink物理分区算子全解析
大数据·flink·apache
Shadow(⊙o⊙)10 小时前
linux基础指令2.0
linux·运维·服务器·学习·apache
运维全栈笔记3 天前
Linux安装配置Tomcat保姆级教程:从部署到性能调优
linux·服务器·中间件·tomcat·apache·web
❀͜͡傀儡师3 天前
Apache Doris 4.0.0 存算分离手动部署指南
apache·doris 4.0
Bruce_Liuxiaowei5 天前
CVE-2026-31431 (Copy Fail) 漏洞复现与验证记录
linux·安全·漏洞复现·cve-2026-31431
SuperherRo5 天前
服务攻防-Java组件安全&Solr搜索&Shiro鉴权&Log4j日志&JDK高版本绕过&CVE历史漏洞
java·log4j·solr·shiro·cve
DolphinScheduler社区6 天前
DolphinScheduler 3.3.2 如何调用 DataX 3.0 + SeaTunnel 2.3.12?附 Demo演示!
java·spark·apache·海豚调度·大数据工作流调度
YaBingSec6 天前
玄机网络安全靶场:Apache HTTPD 解析漏洞(CVE-2017-15715)WP
java·笔记·安全·web安全·php·apache
SuperherRo7 天前
服务攻防-中间件安全&Apache&Tomcat&Jetty&Weblogic&AJP协议&反序列化&CVE漏洞
中间件·tomcat·apache·jetty·weblogic
回忆2012初秋8 天前
时序库.net平台下的推荐 SonnetDB,一文分析清除他与Apache IoTDB的区同
apache·iotdb