記一次前臺任意文件下載漏洞挖掘
文章中所涉及漏洞已交給相關漏洞平臺
1、起因
日常閑逛,翻到了某后臺系統

先是日常手法操作了一番,弱口令走起
admin/123456 yyds!

U1s1,這個后臺功能點少的可憐,文件上傳點更是別想
不過那個備份管理的界面引起了我的興趣,似乎有點意思

filename參數后面直接跟上了文件名,這很難讓人不懷疑存在任意下載漏洞
抓包,放到burp中,發現果然存在任意文件下載

2、經過
經過fofa收集,我發現這是一個小通用,正當我打算興致勃勃的打一發別的目標時,卻發現這只是個后臺洞,backup功能點需要管理員權限

直接302跳轉了,暈
運用了常規手法,也bypass失敗了
好了,此處漏洞挖掘到此結束
身為一個有菜又愛玩的家伙,我怎么可能輕言放棄呢?
本來打算批量掃備份拿源碼,但后面發現,github的鏈接就在后臺介紹處。。。

好家伙,我直呼好家伙,真是踏破鐵鞋無覓處

拿到源碼,趕緊在本地翻配置文件
spring+shiro的典型組合,嗯,剛好沒學到過

憑著典型的腳本小子的思想,我考慮到了shiro的權限分配的較死,從邏輯層繞過估計是中彩票
想到f12sec有位師傅發表過shiro權限繞過的文章,可以利用shiro權限繞過,達到前臺任意下載
但是嘗試了網上公開的幾種exp,發現均失敗了
/;/------>302跳轉
/;a/------>302跳轉
末尾加上"/"------>302跳轉
/fdsf;/../------>302跳轉
怎么回事小老弟,我的200呢w(?Д?)w
最后,發現是我的姿勢錯了,在https://www.freebuf.com/vuls/231909.html中,我找到了答案
先了解點前置知識(大佬繞過):
Shiro的URL路徑表達式為Ant 格式,路徑通配符支持?***。
?:匹配一個字符 *:匹配零個或多個字符串 **:匹配路徑中的零個或多個路徑
上面的文章里解釋的很清楚了,如果URI中存在;號的話,則會刪除其后面的所有字符。
/fdsf;/../hello/1/最終也就變成了/fdsf。
而我們這款web應用遇到不符合的目錄就直接跳轉了,所以,想要利用這個權限繞過,必須要有以下條件
1、存在,并且是anon權限的目錄
此外只要讓路徑規范化處理完后匹配上anon配置的即可。
比如說: /noAuth;/../backup/download
很幸運,這款web應用中就有這樣的目錄

經過測試,images目錄可行
然后手動構造,burp發包,蕪湖,成功前臺任意下載!

聲明:本所分享內容僅用于網安愛好者之間的技術討論,禁止用于違法途徑,所有滲透都需獲取授權!否則需自行承擔,本公眾號及原作者不承擔相應的后果.