1.影响
只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都会导致反序列化漏洞。
2.触发点
-
Shiro提供了记住我(RememberMe)的功能,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问。
-
Shiro对rememberMe的cookie做了加密处理,shiro在CookieRememberMeManaer类中将cookie中rememberMe字段内容分别进行 序列化、AES加密、Base64编码操作
3.总结
AES加密的密钥Key被硬编码在代码里,意味着每个人通过源代码都能拿到AES加密的密钥。因此,攻击者构造一个恶意的对象,并且对其序列化,AES加密,base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞
4.利用
下载
https://github.com/j1anFen/shiro_attack/releases/tag/1.5
运行靶机
docker run -d -p 8000:8080 medicean/vulapps:s_shiro_1
工具利用
哥斯拉连接(老版本)