Apache shiro反序列化漏洞
1.vulhub搭建环境
docker-compose up -d 启动环境
登录页面,点击记住我然后登录抓包直接在请求包或者响应包内看有没有 rememberMe=deleteMe
如果有直接上工具ShiroExploit输入目标地址进行检测,检测后可以直接执行命令,也可反弹shell,被反弹主机使用nc -nvlp 888 连接反弹shell(前提互相可以ping通)
1、漏洞原理
Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64编码再进行AES解密再反序列化,而用户传入的值可以被用户控制,就导致了反序列化RCE漏洞。
漏洞利用的过程如下:
命令-->序列化-->AES加密-->base64编码-->RememberMe Cookie值-->base64解码-->AES解密-->反序列化-->命令
在整个漏洞利用的过程中,重点在于AES加密的密钥,构造Payload的重点在于猜测AES加密使用的密钥。
2、影响的版本
Apache Shiro<1.2.4
3、特征判断
返回包中set-cookie中包含RememberMe=deleteMe字段
4.解决
由于key为固定所以cookie可以被解密,key改为随机key就不会出现这种问题.

浙公网安备 33010602011771号