本文主要是介绍Apache Shiro 越权访问漏洞 CVE-2020-1957 漏洞复现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、漏洞描述
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、环境搭建,利用docker部署环境
wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip
unzip vulhub-master.zip
cd vulhub-master/shiro/CVE-2020-1957
docker-compose up -d
环境启动后,访问http://ip:8080
应用中对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、漏洞复现
使用burp抓取数据包,访问/admin/目录
数据包回显302并跳转到登录页面
构造恶意请求url:http://ip:port/xxx/…;/admin/,访问到管理页面,越权成功
URL请求过程:
客户端请求URL: /xxx/…;/admin/
Shrio 内部处理得到校验URL为 /xxxx/…,校验通过
SpringBoot 处理 /xxx/…;/admin/ , 最终请求 /admin/, 成功访问了后台请求。
这篇关于Apache Shiro 越权访问漏洞 CVE-2020-1957 漏洞复现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!