前言
该篇文章比较详细的介绍,****,供大家使用。
shiro反序列化搭建、利用、复现、漏洞原理
- 前言
- 1.shiro反序列化漏洞介绍
- shiro反序列化漏洞搭建
- 安装docker
- 从镜像仓库拉取镜像
- 开启shiro漏洞网页
- shiro反序列化漏洞利用复现
- shiro反序列化漏洞综合利用工具v2.2
- 1.输入URL,检测是否存在shiro框架
- 2爆破密钥
- 3.检测当前shiro框架利用链(建议直接爆破)
- 4.输入URL,检测是否存在shiro框架
- 5.命令执行
- 关闭shiro
1.shiro反序列化漏洞介绍
1.1.漏洞原理
在Shiro框架下
- 框架供了记住密码的功能(RememberMe)用户登陆成功后会生成一个经过加密的COOKIE
- 其COOKIE的RememberMe的Value的值是经过序列化、AES加密和base64编码后得到的结果。
- 由于使用了AES加密,在Shiro1.2.4版本之前AES加密默认密钥的Base64编码值为kPH+bIxk5D2deZiIxcaaaA==,于是就可得到Payload的构造流程:
恶意命令–>序列化–>AES加密–>base64编码–>发送COOKIE–>回显数据–>数据解码
其中
1.2.漏洞特征
- 未登录的情况下,请求包的COOKIE中没有rememberMe字段返回包set-COOKIE里也没有deleteMe字段
- 登录失败的话,返回包set-COOKIE里有rememberMe=deleteMe字段
- 不勾选记住密码,登录成功后,返回包set-COOKIE里有rememberMe=deleteMe字段。但是之后的所有请求中COOKIE都不会有RememberMe字段
- 勾选记住密码,登录成功后,返回包set-COOKIE里有rememberMe=deleteMe字段,还会有remember字段,之后的所有请求中COOKIE都会有rememberMe字段
- 可以在COOKIE后面自己加一个rememberMe=1,看返回包有没有rememberMe=deleteMe
shiro反序列化漏洞搭建
安装docker
sudo apt-get install -y docker-compose
从镜像仓库拉取镜像
docker pull medicean/vulapps:s_shiro_1
我的已经下载好了,如下图
开启shiro漏洞网页
默认端口为8080,下面命令给他换成80端口,如果占用可以设置其他端口
docker run -d -p 80:8080 medicean/vulapps:s_shiro_1
然后访问linux的IP地址就可以看见网页了,说明你搭建成功了
shiro反序列化漏洞利用复现
这里我们使用图形工具进行利用,简单易懂适合新手小白。
shiro反序列化漏洞综合利用工具v2.2
1.输入URL,检测是否存在shiro框架
2爆破密钥
如果:爆破成功->自动填写密钥
如果:爆破失败->指定密钥为空
一般密钥是这个,可以试试
kPH+bIxk5D2deZiIxcaaaA==
3.检测当前shiro框架利用链(建议直接爆破)
建议直接爆破,如图,我检测后返回我未找到构造链
,所有我还是得爆破
4.输入URL,检测是否存在shiro框架
爆破利用链成功后显示请尝试进行功能区利用
,这样我们基本就算成功了
5.命令执行
可以执行linux命令了
whoami
关闭shiro
查询当前运行容器ID
docker ps
关闭容器
docker stop ID