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

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

文章目录

      • 1.1、漏洞描述
      • 1.2、漏洞等级
      • 1.3、影响版本
      • 1.4、漏洞复现
        • 1、基础环境
        • 2、漏洞分析
        • 3、漏洞验证

说明 内容
漏洞编号 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


启动测试环境:

sudo docker-compose up -d

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

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

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

2、漏洞分析

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

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

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

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

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

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

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

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

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

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

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

3、漏洞验证

利用Shiro_exploit这样的exp工具

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

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

反弹到kali机器上

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

反弹Shell成功

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

你可能感兴趣的:(#,漏洞复现,apache,shiro,漏洞复现)