Shiro反序列化漏洞原理详解及复现
原文中文,约1100字,阅读约需3分钟。
📝
内容提要
介绍Shiro框架反序列化漏洞及利用方法,利用padding oracle攻击和密钥泄露反序列化cookie中的rememberMe字段,利用ysoserial生成URLDNS链和CC链执行命令或反弹shell,介绍其他版本的反序列化漏洞及防御措施。
🎯
关键要点
-
环境搭建使用vulhub的shiro环境,通过docker-compose启动并测试8080端口。
-
Shiro框架用于身份验证、授权和会话管理,存在反序列化漏洞。
-
通过勾选Remember me功能,可以在cookie中发现rememberMe字段,判断网站是否使用shiro及是否存在漏洞。
-
服务端对cookie进行base64解码、AES解密和反序列化,存在padding oracle攻击及密钥泄露的风险。
-
利用URLDNS链判断漏洞可利用性,使用ysoserial生成URLDNS链并发送请求。
-
生成CC链以执行反弹shell命令,注意靶机需先上传nc工具。
-
shiro721版本以下仍采用CBC加密,存在padding oracle攻击风险,1.4.2版本及以上改为GCM加密。
-
提出防御措施以应对反序列化漏洞。
🏷️