Shiro remeberMe反序列化漏洞(Shiro-550)
1.漏洞原理 Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。 那么,Payload产生的过程:命令=》序列化=》AES加密=》base64编码=》RememberMe Cookie值 在整个漏洞利用过程中,比较重要的是AES加密的密钥,如果没有修改默认的密钥那么久很容易就知道密钥,payload构造起来也是十分简单。 1.1影响版本:Apache Shiro < 1.2.4 1.2特征判断:返回包中包含rememberMe=deleteMe字段 2.漏洞发现 2.1环境搭建 获取docker镜像 docker pull medicean/vulapps:s_shiro_1 启动docker镜像: docker run -d -p 8080:8080 medicean/vulapps:s_shiro_1 2.2漏洞检测 这里使用一个shiro_exploit工具,检查是否存在默认的key github项目地址: https://github.com/insightglacier/Shiro_exploit 使用方法:python2 shiro_exploit.py –u 目标机地址及端口