Apache Shiro 认证绕过漏洞 CVE-2010-3863
影响范围 Apache Shiro 1.0.0-incubating 漏洞类型权限绕过 操作系统限制无 配置要求 在 Shiro 配置文件中设置了基于路径的访问控制规则 漏洞利用登录管理后台,信息泄露 利用原理Shiro1.1.0 版本之前进行安全校验前缺少对 URL 标准化处理,Shiro 拦截器执行的是严格的字符串匹配或者正则匹配,就会认为/./admin 与/admin/不同(./当前目录,../上一级目录);后端 Web 容器为了兼容性,会自动解析 URL 中的相对路径符号 漏洞复现现成的 vulhub 来拉取镜像 123456#下载vulhub源代码git clone https://github.com/vulhub/vulhub.git#进入漏洞目录cd vulhub/shiro/CVE-2010-3863#拉取镜像docker-compose up -d 用 burpsuite 抓取 http://靶机 ip:8080/admin/ 发送到 Repeater 模块 直接发送会返回 302,重定向到登录页面 修改路径/./admin/ 发送后返回 ...
Shiro 反序列化漏洞 CVE-2016-4437
影响范围 Apache Shiro 1.0.0 - 1.2.4 部分集成过时 Shiro 组件的第三方框架 / 脚手架 漏洞类型Java 反序列化 操作系统限制无 配置要求默认配置 漏洞利用反弹 shell 利用原理在 Shiro1.2.4 及以前的版本中,AbstractRememberMeManager 类在代码中硬编码了 AES-128-CBC 加密的密钥 kPH + bIxk5D2deZiIxcaaaA==,意味着所以使用默认配置的 Shiro 系统用同一个密钥进行加解密 Cookie。Shiro 方便用户在关闭浏览器保持登录状态(RememberMe 逻辑),将用户身份序列化后存入 Cookie,当用户再次访问,服务器回自动读取并反序列化还原对象。解密 Cookie 后,Shiro 直接调用 Java 的 ObjectInputStream.readObject() 来还原对象,密钥对还原对象类型进行安全防护。攻击者在 Cookie 中注入精心构造的恶意代码,Shiro 拦截含 rememberMe 字段的 HTTP 请求,恶意代码经过 base64 解码再用 AES...
Shiro 认证绕过漏洞 CVE-2020-1957
影响范围 Apache Shiro 1.0.0-incubating - 1.5.1 漏洞类型权限绕过 操作系统限制无 配置要求 Shiro 拦截器采用了路径匹配模式 漏洞利用登录管理后台,信息泄露 利用原理在 Shiro 的 1.5.2 之前的版本中,WebUtils.getPathWithinApplication() 方法处理 URL 时候会根据分号对路径进行截断,会认为分号后面不属于路径一部分;而 Spring 框架在匹配控制器路由时候,会对 URL 进行标准化处理(例如解析穿越符..),它对分号处理方式不同。二者对请求的解析不一样,攻击者通过特殊构造/;/路径来绕过 Shiro 的过滤 漏洞复现现成的 vulhub 来拉取镜像 123456#下载vulhub源代码git clone https://github.com/vulhub/vulhub.git#进入漏洞目录cd vulhub/shiro/CVE-2020-1957#拉取镜像docker-compose up -d 抓取 http://靶机 ip:8080/admin 数据包 发送到 Repeater...