Shiro rememberMe反序列化漏洞(Shiro-550)
漏洞原理
Apache Shiro框架的RememberMe功能存在严重的安全漏洞,主要问题在于:
-
数据处理流程:当用户登录成功并选择"记住我"时,Shiro会生成一个经过加密和编码的cookie。服务器端处理这个cookie的流程是:
-
Base64解码
-
AES解密
-
反序列化
-
-
漏洞根源:这个反序列化过程在没有适当防护的情况下,可能导致远程代码执行(RCE)。
-
攻击者构造恶意Payload的步骤正好与处理流程相反:
-
命令 => 序列化 => AES加密 => Base64编码 => RememberMe Cookie值
打开网站
、
防护建议
-
修改Shiro的默认AES加密密钥
-
升级到已修复此漏洞的Shiro版本
-
禁用不必要的反序列化功能