shiro反序列化

shiro<=1.2.4

环境搭建

centos

安装docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
换源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
卸载原有docker
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
安装依赖
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
docker换源
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker Engine-Community
yum install -y docker-ce docker-ce-cli containerd.io
启动docker
yum install -y docker-ce docker-ce-cli containerd.io
安装靶场
docker pull medicean/vulapps:s_shiro_1
启动靶场
docker run -d -p 80:8080 medicean/vulapps:s_shiro_1
run 启动
-d 后台启动
-p 端口映射 真实机端口:docker端口

kali

image-20230225161349285

原理以及利用

序列化数据–>aes加密–>base64编码

验证是否存在漏洞

发现登录框,勾选记住密码,随意输入账户密码,查看响应报文

image-20230225161430020

客户端在点击remember me的时候,服务器会生成一个cookie,cookie采取banse64以及aes的加密手段,在存在漏洞的shiro版本,aes的加密存在默认的密钥

image-20230225161453364

image-20230225161508334

Shiro综合利用工具输入地址一把梭哈,关于CC链条的分析会单独写一篇博客