0x00 Shiro 框架介绍
Shiro是基于java的一套开源程序,用于身份认证与用户识别等管理,使用shiro就可以非常快速的完成认证、授权等功能的开发,降低系统成本。shiro的使用非常广泛,可用于web与非web的程序中,
0x01 shiro反序列化介绍
shiro的认证流程是:rememberMe的cookie值–>Base64解码–>AES解密–>反序列化,其中AES使用是硬编码,即未修改密钥可截取密钥造成反序列化危害,关键点在于数据包cookie中存在的rememberme的功能传递
影响版本:shiro<=1.2.4的版本有影响。
0x02 漏洞复现
利用工具:https://github.com/j1anFen/shiro_attack/releases/tag/2.2
使用docker拉取漏洞镜像:
docker pull medicean/vulapps:s_shiro_1
systemctl restart docker
docker run -d -p 8081:8080 medicean/vulapps:s_shiro_1
搭建成功:
访问地址在返回包中查看到remember=deleteme内容疑似存在shiro反序列化,或者自行在cookie中添加rememberMe=123字段看返回包数据内容;
工具检测利用:
木马写入后门链接:
0x03 shiro反序列化防范
1.升级shiro到1.2.5及以上、
2.rememberMe功能的AES密钥泄露,会导致反序列化漏洞。建议删除代码默认AES密钥、