【漏洞复现】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成功

相关推荐
roman_日积跬步-终至千里6 小时前
【大数据】Apache Calcite架构:从 SQL 到执行计划的转换框架
大数据·架构·apache
xdpcxq10298 小时前
Apache 详解 在 Ubuntu 24 中安装和配置 Apache
linux·ubuntu·apache
振华OPPO9 小时前
开源高性能RPC框架:Apache Dubbo全览与实践指南
微服务·rpc·开源·apache·dubbo·总线
leikooo1 天前
ShardingSphere 下更新分片键导致的失败问题分析与解决
java·spring·apache
一个天蝎座 白勺 程序猿1 天前
Apache IoTDB(13):数据处理的双刃剑——FILL空值填充与LIMIT/SLIMIT分页查询实战指南
数据库·sql·ai·apache·时序数据库·iotdb
阿巴资源站1 天前
小程序原生授权手机号
小程序·apache
亲爱的非洲野猪1 天前
Apache Cassandra完全指南:架构、原理与生产实践深度解析
架构·apache·database·cassandra
Hello.Reader2 天前
Apache Cassandra Connector:Flink 与宽列存储的高吞吐协作
大数据·flink·apache
SuperherRo3 天前
JAVA攻防-Shiro专题&key利用链&CB1链分析&入口点&调用链&执行地&Class加载
java·shiro·反序列化·cb1链
可涵不会debug3 天前
时序数据库选型指南:以Apache IoTDB为核心的大数据解决方案
apache·时序数据库·iotdb