CVE-2016-4437(Apache Shiro 反序列化漏洞)
点击蓝字
CVE-2016-4437(Apache Shiro 反序列化漏洞)复现
一、漏洞描述
二、漏洞原理
cookie
base64 decode
解密AES(加密秘钥硬编码)
反序列化(未作过滤处理)
三、影响版本
四、环境准备
-
进入vulhub/shiro/CVE-2016-4437目录下
cd vulhub/shiro/CVE-2016-4437/
2.docker环境启动
systemctl start docker
service docker start
sudo docker-compose up -d
3.浏览器访问http://192.168.204.128:8080,出现以下界面说明环境搭建成功。
4.下载ysoserial工具以及POC
https://github.com/insightglacier/Shiro_exploit
五、漏洞复现
这里我的漏洞机ip地址:192.168.204.128(kali1)
攻击机ip地址:192.168.204.129(kali2)
下载地址:https://github.com/feihong-cs/ShiroExploit/releases/tag/v2.3
前台登录,注意需要勾选Remember Me ,截获数据包(判断:将cookie改为 rememberMe=1 发包,响应包中有 rememberMe=deleteMe 一般就是Apache shiro代码搭建的站点)
证明存在shiro漏洞。
打开下载好的ShiroExploit.jar
进入图形化Shiro检测界面,输入测试网址,点击下一步。
选择第一个使用ceye.io进行漏洞检测,点击下一步。
开始执行检测
在攻击机kali2上进行监听
同时在图形界面中勾选第一个反弹shell,填入相应信息,点击执行。
执行结束后的结果如下图所示:
查看攻击机上监听的信息,发现攻击机成功连接到kali1上
六、漏洞修补方案
1.升级Shiro版本到1.2.5及以上
2.现在使用的rememberMe的AES加密密钥泄露,请自己base64一个AES的密钥,或者利用官方提供的方法生成密钥
org.apache.shiro.crypto.AbstractSymmetricCipherService#generateNewKey()