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

相关推荐
程序员入门进阶6 小时前
智能社区服务小程序+ssm
小程序·apache
编码小袁16 小时前
探索Apache Spark:现代数据处理的闪电利剑
大数据·spark·apache
自求多芙17 小时前
Apache ECharts
前端·apache·echarts
孪生质数-2 天前
Apache-Hive数据库使用学习
数据库·hive·hadoop·apache
Suckerbin2 天前
Cent OS-7的Apache服务配置
apache
淮北枳丶4 天前
Apache POI 操作Word常用方法
java·word·apache
jessezappy4 天前
让Apache正确处理不同编码的文件避免中文乱码
中文乱码·apache·defaultcharset
Aloudata4 天前
从Apache Atlas到Aloudata BIG,数据血缘解析有何改变?
大数据·apache·数据血缘·主动元数据·数据链路
小钱c75 天前
Mac下安装Apache JMeter并启动
jmeter·macos·apache
FserSuN6 天前
Apache Calcite - 查询优化之自定义优化规则
apache·calcite