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

继续阅读