Shiro-CVE-2016-4437 漏洞复现(vulhub靶场搭建)

shiro反序列化漏洞原理

Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会将用户信息加密,加密过程:用户信息=>序列化=>AES加密=>base64编码=>RememberMe Cookie值。如果用户勾选记住密码,那么在请求中会携带cookie,并且将加密信息存放在cookie的rememberMe字段里面,在服务端收到请求对rememberMe值,先base64解码然后AES解密再反序列化,这个加密过程如果我们知道AES加密的密钥,那么我们把用户信息替换成恶意命令,就导致了反序列化RCE漏洞。在shiro版本<=1.2.4中使用了默认密钥kPH+bIxk5D2deZiIxcaaaA==,这就更容易触发RCE漏洞。

vulhub靶场的搭建

(1)安装docker

搭建Vulhub漏洞靶场环境,首先需要安装Docker。在这里,我们使用Vulhub官方的Docker安装方法,执行命令:

curl -s https://get.docker.com/ | sh

因为这边作者已经安装过,所以它提示已经安装

输入命令之后,接着输入命令docker --version

docker --version

如果出现版本号,则说明docker安装成功。

(2)安装vulhub

请注意,自 2022 年 4 月起,docker compose 已合并到 Docker 中作为一个子命令,即 Docker Compose V2,Python 版本的 docker-compose 将在 2023 年 6 月后被弃用。因此,Vulhub 不再需要额外安装 docker-compose,所有文档都将修改为使用 docker compose 命令。

对于其他操作系统的 Docker 和 Docker Compose 的安装步骤可能略有不同,请参考 Docker 文档 获取详细信息。

# 下载项目
wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip
unzip vulhub-master.zip
cd vulhub-master

# 进入漏洞/环境目录
cd flask/ssti

# 构建环境
docker compose build

# 运行环境(后台模式)
docker compose up -d

如果有师傅和我的kali一样访问不了github,可以使用物理机先将vulhub的压缩包先下载解压,随后拖入kali。记得输入上述命令时,确保kali是root权限。

进入漏洞相应的路径,然后运行环境。

cd /vulhub-master/shiro/CVE-2016-4437
docker-compose up -d

访问8080,如下环境搭建成功

验证是否为shiro框架

使用bp抓却数据包,勾选上界面的Remember me,输入任意用户名和密码,点击登录,如果返回包中存在rememberMe=deleteMe字段,说明使用了shiro框架。

 

漏洞验证

作者这边是使用jar工具进行验证
链接: https://pan.baidu.com/s/1wYE2Xtw3XH8JB6VsdscYZA  提取码: ktt5

使用方法:先确认本机是否安装java环境,解压进入该路径

在上方路径框中输入cmd进入命令行

进入命令行后输入命令

java -jar shiro_attack-2.2.jar

启动该工具

依照下图顺序,输入目标地址的路径,修改请求方法后,点击爆破秘钥。

漏洞利用

图形化界面的漏洞利用方式是比较简单的,在上图的基础上点击检测当前利用链。

点到命令执行的界面,输入命令,点击执行。这边看到,我们已经拿到了root的权限。

该漏洞复现完成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值