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加密。
- 提出防御措施以应对反序列化漏洞。
➡️