日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【CVE-2020-1957】shiro搭配spring时身份验证绕过漏洞分析

發布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【CVE-2020-1957】shiro搭配spring时身份验证绕过漏洞分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0x00 漏洞簡介

https://www.openwall.com/lists/oss-security/2020/03/23/2

0x01 漏洞分析

翻查官方commit,在commit?https://github.com/apache/shiro/commit/9762f97926ba99ac0d958e088cae3be8b657948d?中找到相關信息

?大致理解為Spring web在匹配url的時候會容錯后面多余的/,而shiro匹配不上導致繞過,由國人tomsun28提交pull request

0x02 漏洞環境搭建

使用springboot+shiro搭建一個簡單的demo,代碼參考至https://segmentfault.com/a/1190000019440231(使用java原生的整合方式)

其中shiro使用的是1.4.0版本

在shiro-config中配置一個對url "/test/secret"的過濾,此url需要登錄才能訪問

同時在LoginController中配置以下代碼,用于返回一個需要認證的信息

@GetMapping("/test/secret")public String secret(){return "secret";}

直接訪問/test/secret,跳轉到登錄頁面

?訪問/test/secret/,返回了secret

官方修復也很簡單就是把url后面的/也考慮進去了再進行匹配

順便一提,使用maven拉取包的時候發現1.5.1版源碼已經修復了,而1.5.0,1.4.2的源碼卻拉取不到

0x03 更新

?shiro的匹配符知識

看freebuf的分析(https://www.freebuf.com/vuls/231909.html),才發現自己看漏了。。。

后續還有一個繞過,具體commit看這里?https://github.com/apache/shiro/commit/3708d7907016bf2fa12691dff6ff0def1249b8ce

由于shiro先獲取的url,然后會判斷分號是否存在,如果存在就會把后面的刪除,進入shiro匹配,匹配不上默認放行,之后Spring web對路徑進行規范化從而訪問到了相應的控制器

比如:

/fdsf;/../test/secret

0x04 實際攻擊

當shiroFilter這么寫

與及這么寫

都存在繞過,也就是說當配置在二級目錄下面的身份驗證都存在被繞過的風險

只有這么寫的時候,才不存在問題

總結

以上是生活随笔為你收集整理的【CVE-2020-1957】shiro搭配spring时身份验证绕过漏洞分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。