如何搭建Shiro-550环境进行CVE-2016-4437漏洞调试分析及利用?

摘要:代码审计 | Shiro-550 —— CVE-2016-4437 环境搭建 调试分析 漏洞利用 目录 环境搭建 vulhub 快速复现 shiro-root-1.2.4 源码调试环境 抓包观察 RememberMe Cookie 源码调试
代码审计 | Shiro-550 —— CVE-2016-4437 环境搭建 调试分析 漏洞利用 目录 环境搭建 vulhub 快速复现 shiro-root-1.2.4 源码调试环境 抓包观察 RememberMe Cookie 源码调试分析 Cookie 获取流程 解密逻辑 反序列化触发点 硬编码 Key 的问题 加密结构梳理 漏洞利用 踩坑一:版本不匹配 踩坑二:ClassLoader 问题 最终打通 总结 环境搭建 vulhub 快速复现 先用 vulhub 把环境跑起来,工具直接一把梭爆破确认漏洞存在: git clone https://github.com/vulhub/vulhub.git cd vulhub/shiro/CVE-2016-4437 docker-compose up -d 访问 http://your-ip:8080 用工具爆破一下: 找到利用链,命令执行成功: shiro-root-1.2.4 源码调试环境 想深入分析的话光靠 vulhub 不够,还是得把源码环境搭起来方便打断点。 拉源码切版本 git clone https://github.com/apache/shiro.git cd shiro git checkout shiro-root-1.2.4 # 切到漏洞版本 git describe --tags # 验证,输出: shiro-root-1.2.4 IDEA 全家桶破解 命令:irm ckey.run/debug | iex 网站:https://ckey.run/ 配置 Tomcat 启动项目 配置 Tomcat 启动项: Tomcat 本地(免费版没有这个功能): Tomcat 下载地址:https://tomcat.apache.org/download-90.cgi 解压后配置刚刚的源码路径: 配置工件: 这里顺便说一下 war 和 war exploded 的区别: war —— 把整个项目打包成一个 .war 文件再部署,每次改代码都要重新打包,慢 war exploded —— 直接用解压后的目录结构部署,改了 JSP/class 文件可以热更新,不用重启,调试方便 所以调试的时候选 war exploded 就行了。 解决源码构建的坑 这个版本搭建还是挺麻烦的,有几个问题需要处理。
阅读全文