Apache Shiro 身份验证绕过漏洞 (CVE-2020-1957)

Apache Shiro 身份验证绕过漏洞 (CVE-2020-1957)

Apache Shiro 是一个功能强大且易于使用的 Java 安全框架,它执行身份验证、授权、加密和会话管理。

在具有 Spring 动态控制器的 1.5.2 之前的 Apache Shiro 版本中,攻击者可以构造恶意请求..;以绕过目录身份验证。

参考链接:

漏洞复现

环境启动后,访问http://192.168.44.132:8080查看主页。

本应用中 URL 权限的配置如下。

1
2
3
4
5
6
7
8
@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;
}

/admin/无法访问对管理页面的直接请求,并将被重定向到登录页面。

image-20220110152310825

构造一个恶意请求/xxx/..;/admin/以绕过身份验证检查并访问管理页面。

image-20220110152322385

0%