Apache Shiro 反序列化漏洞复现(CVE-20164437)

#Apache Shiro 反序列化漏洞(CVE-20164437)#

一、漏洞简介

Shiro 是 Java 的一个安全框架,执行身份验证、授权、密码、会话管理

shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值–>Base64解码–>AES解密–>反序列化 然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。

二、漏洞影响

影响版本

Apache Shiro <= 1.2.4

三、产生原因

Apache Shiro框架提供了记住我(RememberMe)的功能,关闭浏览器再次访问时无需再登录即可访问。shiro默认使用CookieRememberMeManager,对rememberMe的cookie做了加密处理,在CookieRememberMeManaer类中将cookie中rememberMe字段内容先后进行序列化、AES加密、Base64编码操作。服务器端识别身份解密处理cookie的流程则是:

(1)获取rememberMe cookie

(2)base64 解码

(3)AES解密(加密密钥硬编码)

(4)反序列化(未作过滤处理)

但是AES加密的密钥Key被硬编码(密钥初始就被定义好不能动态改变的)在代码里,这就意味着每个人通过源代码都能拿到AES加密的密钥。因此,攻击者可以构造一个恶意的对象,并且对其序列化、AES加密、base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终就造成了反序列化的RCE漏洞。只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都可能会导致该漏洞的产生。

四、复现过程

docker 靶机:192.168.111.137

攻击机 win7:192.168.111.132

靶场环境:shiro 1.2.4

访问目标Url

在这里插入图片描述

使用大佬的检测工具ShiroExploit检测是否存在shiro反序列化漏洞

在这里插入图片描述

存在漏洞,能够直接进行命令执行

在这里插入图片描述

反弹shell成功

在这里插入图片描述

在这里插入图片描述

五、修复方案

及时更新补丁

参考oracle官网发布的补丁:
https://www.oracle.com/security-alerts/cpuoct2020traditional.html

六、参考链接

反序列化工具_Apache Shiro 1.2.4反序列化漏洞复现(CVE20164437)

Apache Shiro反序列化漏洞复现(Shiro550,CVE-2016-4437)

标签

CVE-2018-2894、weblogic、任意文件上传、未授权访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值