Apache Shiro 认证绕过漏洞 CVE-2020-1957 漏洞复现

Apache Shiro 认证绕过漏洞 CVE-2020-1957 漏洞复现

  • 一、漏洞描述
  • 二、漏洞影响
  • 三、漏洞复现
    • 1、环境搭建
    • 2、漏洞复现
  • 四、漏洞POC
  • 五、参考链接

一、漏洞描述

Apache Shiro 是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。
CVE-2020-1957,Spring Boot中使用 Apache Shiro 进行身份验证、权限控制时,可以精心构造恶意的URL,利用 Apache Shiro 和 Spring Boot 对URL的处理的差异化,可以绕过 Apache Shiro 对 Spring Boot 中的 Servlet 的权限控制,越权并实现未授权访问。

二、漏洞影响

Apache Shiro < 1.5.1

三、漏洞复现

1、环境搭建

执行如下命令启动一个搭载Spring 2.2.2与Shiro 1.5.1的应用:

cd vulhub/shiro/CVE-2020-1957
docker-compose up -d

环境启动后,访问http://x.x.x.x:8080即可查看首页:
Apache Shiro 认证绕过漏洞 CVE-2020-1957 漏洞复现_第1张图片

这个应用中对URL权限的配置如下:

@Bean
public ShiroFilterChainDefinition shiroFilterChainDefinition() {
    DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition();
    chainDefinition.addPathDefinition("/login.html", "authc"); // need to accept POSTs from the login form
    chainDefinition.addPathDefinition("/logout", "logout");
    chainDefinition.addPathDefinition("/admin/**", "authc");
    return chainDefinition;
}

2、漏洞复现

使用BurpSuite抓取数据包,访问/admin/目录:
Apache Shiro 认证绕过漏洞 CVE-2020-1957 漏洞复现_第2张图片
回显302并跳转到登录页面:
Apache Shiro 认证绕过漏洞 CVE-2020-1957 漏洞复现_第3张图片
构造恶意请求/xxx/..;/admin/,即可绕过权限校验,访问到管理页面:
Apache Shiro 认证绕过漏洞 CVE-2020-1957 漏洞复现_第4张图片
URL请求过程:

  • 客户端请求URL: /xxx/..;/admin/
  • Shrio 内部处理得到校验URL为 /xxxx/..,校验通过
  • SpringBoot 处理 /xxx/..;/admin/ , 最终请求 /admin/, 成功访问了后台请求。

四、漏洞POC

构造恶意请求/xxx/..;/admin/,即可绕过权限校验,访问到管理页面。

五、参考链接

https://www.safedog.cn/news.html?id=4441
https://blog.spoock.com/2020/05/09/cve-2020-1957/

你可能感兴趣的:(漏洞复现,Apache,Shiro,Shiro,认证绕过漏洞,CVE-2020-1957,漏洞复现,安全)