国产成人毛片毛片久久网_国产午夜激无码av毛片不_国产乱对白精彩在线播放_av资源站中文字幕_亚洲男人的天堂网站_国产成 人 综合 亚洲网_中国国产激情一区_少妇一级淫片免费放_亚洲一本大道av久在线播放_免费观看美女裸体网站

安全播報(bào)

防御吧作為15年知名老牌域名服務(wù)商,CNNIC和CANN雙認(rèn)證域名注冊(cè)商,已經(jīng)
持續(xù)為500多萬(wàn)個(gè)域名提供服務(wù),包括智能DNS/自由轉(zhuǎn)移/隱私保護(hù)等服務(wù)!
CVE-2022-32532 Apache Shiro RegExPatternMatcher 認(rèn)證繞過(guò)漏洞
2022-07-12 13:54:20 【

    前言

    結(jié)合自身經(jīng)歷,在使用正則表達(dá)式去匹配流量特征時(shí),由于正則表達(dá)式中元字符“.”不匹配換行符(\n、\r)導(dǎo)致一直提取不上所需的流量。而如今,之前踩過(guò)的坑卻出現(xiàn)在了Apache Shiro框架之中……

    

    漏洞描述

    6月29日,Apache 官方披露 Apache Shiro 權(quán)限繞過(guò)漏洞(CVE-2022-32532),當(dāng) Apache Shiro 中使用 RegexRequestMatcher 進(jìn)行權(quán)限配置,且正則表達(dá)式中攜帶“.”時(shí),未經(jīng)授權(quán)的遠(yuǎn)程攻擊者可通過(guò)構(gòu)造惡意數(shù)據(jù)包繞過(guò)身份認(rèn)證。

    相關(guān)介紹

    Apache Shiro 是一個(gè)功能強(qiáng)大且易于使用的 Java 安全框架,它可以執(zhí)行身份驗(yàn)證、授權(quán)、加密和會(huì)話管理,可以用于保護(hù)任何應(yīng)用程序——從命令行應(yīng)用程序、移動(dòng)應(yīng)用程序到最大的 web 和企業(yè)應(yīng)用程序。

    

    利用范圍

    Apache Shiro < 1.9.1

    漏洞分析

    環(huán)境搭建

    這里使用此漏洞提交者4ra1n 師傅的漏洞demo(https://github.com/4ra1n/CVE-2022-32532)進(jìn)行復(fù)現(xiàn)分析。

    漏洞原理

    在漏洞分析之前,先了解一下相關(guān)漏洞產(chǎn)生原理。

    在正則表達(dá)式中元字符.是匹配除換行符(\n、\r)之外的任何單個(gè)字符。

    

    要匹配包括 \n 在內(nèi)的任何字符,需使用像(.|\n)的模式。

    

    結(jié)合4ra1n師傅的分析,在java中的正則默認(rèn)情況下.也同樣不會(huì)包含\n、\r字符,因此在一些場(chǎng)景中,使用正則.的規(guī)則就有可能被繞過(guò)。

    

    新增Pattern.DOTALL模式后,正則表達(dá)式.就可以匹配任何字符包括換行符。

    

    源碼分析

    結(jié)合shiro源碼和漏洞場(chǎng)景分析,在shiro-core-1.9.0.jar中存在一個(gè)RegExPatternMatcher類。

    org.apache.shiro.util.RegExPatternMatcher.class。

    

    RegexRequestMatcher和AntPathMatcher類似,提供請(qǐng)求路徑匹配功能及攔截器參數(shù)解析的功能。而一般情況下RegexRequestMatcher類是不會(huì)在項(xiàng)目中出現(xiàn),需要用戶自己配置。

    分析RegexRequestMatcher用于匹配的代碼。

    

    可以看到,這里正如上面漏洞原理分析的一樣,pattern存在帶.的正則表達(dá)式匹配,若source中存在\r或\n字符時(shí),將判斷錯(cuò)誤。

    而在4ra1n師傅構(gòu)造的漏洞場(chǎng)景中。

    

    自定義了Filter,增加權(quán)限認(rèn)證場(chǎng)景:

    1、判斷請(qǐng)求頭中的Token是否匹配。

    2、如果不存在Token或者Token頭錯(cuò)誤則認(rèn)為認(rèn)證失敗。

    并且配置了自定義的AccessControlFilter實(shí)現(xiàn)類,并將 PatternMatcher配置為RegExPatternMatcher。

    同時(shí)自定義MyShiroFilterFactoryBean。

    

    繼承自ShiroFilterFactoryBean類;設(shè)置匹配規(guī)則為/permit/.*字符串,表示需要攔截/permit/下所有的路徑。

    

    在自定義controller中,配置了/permit/{value}這樣從路徑取參數(shù)的路由和/permit/*這樣的通配路由。

    漏洞復(fù)現(xiàn)

    當(dāng)訪問(wèn)/permit/any,返回拒絕訪問(wèn)。

    

    當(dāng)訪問(wèn)/permit/a%0any或/permit/a%0dny時(shí),返回success,即認(rèn)證成功。

    

    

    

    所以在如上滿足使用了RegExPatternMatcher類,設(shè)置帶有.的正則表達(dá)式等條件的場(chǎng)景下,利用該漏洞可實(shí)現(xiàn)權(quán)限認(rèn)證繞過(guò)。

    

】【打印關(guān)閉】 【返回頂部
分享到QQ空間
分享到: 
上一篇微軟7月安全更新多個(gè)產(chǎn)品高危漏洞 下一篇顯示IP屬地,會(huì)泄露個(gè)人信息嗎?

立足首都,輻射全球,防御吧專注云防御及云計(jì)算服務(wù)15年!

聯(lián)系我們

服務(wù)熱線:13051179500 18910191973
企業(yè)QQ:1245940436
技術(shù)支持:010-56159998
E-Mail:xihedata.com
Copyright ? 2003-2016 fangyuba. 防御吧(完美解決防御與加速) 版權(quán)所有 增值許可:京B2-20140042號(hào)
售前咨詢
公司總機(jī):18910191973
24小時(shí)電話:010-56159998
投訴電話:18910191973
值班售后/技術(shù)支持
售后服務(wù)/財(cái)務(wù)
備案專員
緊急電話:18610088800