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即可查看首頁:

這個應用中對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/目錄:

回顯302并跳轉到登錄頁面:

構造惡意請求/xxx/..;/admin/,即可繞過權限校驗,訪問到管理頁面:

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/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290582.html
標籤:其他
