🍬 部落客介紹
👨🎓 部落客介紹:大家好,我是 _PowerShell ,很高興認識大家~
✨主攻領域:【滲透領域】【資料通信】 【通訊安全】 【web安全】【面試分析】
🎉點贊➕評論➕收藏 == 養成習慣(一鍵三連)😋
🎉歡迎關注💗一起學習👍一起讨論⭐️一起進步📝文末有彩蛋
🙏作者水準有限,歡迎各位大佬指點,互相學習進步!
文章目錄
- 🍬 部落客介紹
- 一、漏洞簡介
- 二、漏洞編号
- 三、影響版本
- 四、Fofa
- 五、漏洞檢測
- 六、漏洞原理
- 七、環境準備
- 八、漏洞利用
- 1、通路站點
- 2、get方式/permit/any不加token
- 3、get方式/permit/any加token
- 4、使用 %0a 進行權限繞過
- 九、修複建議
一、漏洞簡介
Apache Shiro 是一個強大且易用的 Java 安全架構,通過它可以執行身份驗證、授權、密碼和會話管理。使用 Shiro 的易用 API,您可以快速、輕松地保護任何應用程式 —— 從最小的移動應用程式到最大的 WEB 和企業應用程式。
2022年6月29日,Apache官方披露Apache Shiro權限繞過漏洞(CVE-2022-32532),當Apache Shiro中使用RegexRequestMatcher進行權限配置,且正規表達式中攜帶"."時,未經授權的遠端攻擊者可通過構造惡意資料包繞過身份認證,導緻配置的權限驗證失效。
二、漏洞編号
CVE-2022-32532
三、影響版本
Apache Shiro < 1.9.1
四、Fofa
"Apache Shiro"
五、漏洞檢測
在config\pom.xml的version标簽中檢視目前使用的shiro版本号。
六、漏洞原理
在正規表達式中元字元.是比對除換行符(\n、\r)之外的任何單個字元。
要比對包括 \n 在内的任何字元,需使用像(.|\n)的模式。
在java中的正則預設情況下.也同樣不會包含\n、\r字元,是以在一些場景中,使用正則.的規則就有可能被繞過。
新增Pattern.DOTALL模式後,正規表達式.就可以比對任何字元包括換行符。
在shiro-core-1.9.0.jar中存在一個RegExPatternMatcher類,提供請求路徑比對功能及攔截器參數解析的功能。pattern存在帶.的正規表達式比對,若source中存在\r或\n字元時,将判斷錯誤。
七、環境準備
我這裡使用的是 vulfocus 靶場,大家也可以自行搭建靶場。我就為了省事兒,就用了 vulfocus 複現的
https://vulfocus.cn/
vulfocus 篩選靶場如下,直接搜尋需要的靶場環境就可以了,在這裡也給大家推薦一下八,可以為需要大量複現漏洞的安全工作者節省大量時間。
這個下面就是平台給出的鏡像資訊和一些提示資訊。我們直接通路他所給的 ip+端口 就可以通路到我們的靶場環境了。
通路所給ip:端口
八、漏洞利用
1、通路站點
直接通路ip:端口,抓包如下
2、get方式/permit/any不加token
把抓到的包放到重發子產品,以get方式/permit/any
通路被拒絕
3、get方式/permit/any加token
把抓到的包放到重發子產品,以get方式/permit/any,并加token進行身份認證
通路成功
4、使用 %0a 進行權限繞過
把抓到的包放到重發子產品,以get方式/permit/a%0any
通路成功
九、修複建議
https://github.com/apache/shiro/releases/tag/shiro-root-1.9.1