Shiro反序列化漏洞

 

Shiro反序列化漏洞

 


一、Shrio反序列化导致命令执行(Shiro-550 CVE-2016-4437)

1.1 漏洞介绍

1.1.1 漏洞简介


  Apache Shiro是一款开源企业常见JAVA安全框架,提供身份验证、授权、密码学和会话管理。java中的权限框架有SpringSecurity和Shiro,由于Spring功能强大但复杂,Shiro的简单强大,扩展性好因此用的还是很多。

1.1.2 影响版本

Apache Shiro < 1.2.4

1.1.3 漏洞原理

  Apache Shiro框架提供了记住我的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。cookie的key为RememberMe,cookie的值是经过相关信息进行序列化,然后使用AES加密(对称),最后再使用Base64编码处理。服务端在接收cookie时:

检索RememberMe Cookie的值
Base 64解码
AES解密(加密密钥硬编码)
进行反序列化操作(未过滤处理)
攻击者可以使用Shiro的默认密钥构造恶意序列化对象进行编码来伪造用户的Cookie,服务端反序列化时触发漏洞,从而执行命令。

1.1.4 漏洞特征

进行登录,返回包中查看是否有rememberMe=deleteMe字段
可以尝试将cookie 改为rememberMe=1 ,来查看返回包是否有rememberMe=deleteMe字段。

1.1.5 漏洞影响  

只要rememberMe的AES加密密钥泄漏,无论shiro什么版本都会导致反序列化漏洞。

1.2 环境配置

受害者IP:192.168.35.139(vulhub、docker)

cd /vulhub/shiro/CVE-2016-4437  
docker-compose up -d
root@kali:~# service docker start   #启动docker
root@kali:~# cd vulhub    #打开vulhub
root@kali:~/vulhub# cd shiro  #打开shiro环境
root@kali:~/vulhub/shiro# cd CVE-2016-4437 
root@kali:~/vulhub/shiro/CVE-2016-4437# docker-compose up -d  #启动环境

 docker ps -a :#显示服务器内全部容器(同时显示出映射的端口号)

docker-compose down  #关闭docker环境

》》进入目标目录下,启动一个shiro1.2.4的web服务

docker-compose up -d:启动docker环境

 

docker-compose up -d


在这里插入图片描述

docker ps -a :显示服务器内全部容器(同时显示出映射的端口号)

docker ps -a


》》访问web页面
在这里插入图片描述
能够访问说明环境搭建成功!

1.3 漏洞检测

演示环境:
攻击者IP:192.168.35.1
UI一键利用工具:
GitHub地址:https://github.com/feihong-cs/ShiroExploit
》》从地址下载一键利用工具,双击ShiroExploit.jar
在这里插入图片描述

》》输入目标URL 点击下一步
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
1.4 漏洞利用

》》反弹shell
在kali上开启nc监听本地1111端口,用来接收反弹的Shell

nc -l -p 1111

在这里插入图片描述
执行fire
在这里插入图片描述
反弹成功 执行whoami
在这里插入图片描述

 

docker-compose down 关闭docker环境 完成复现

docker-compose down

 

1.5 防御措施

升级Shiro到最新版本

WAF拦截Cookie中长度过大的rememberMe值

参考:

http://luckyzmj.cn/posts/9db50098.html

https://blog.csdn.net/Aaron_Miller/article/details/106475088

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值