Apache Shiro是一個強大易用的Java安全框架,提供了認證、授權、加密和會話管理等功能。Shiro框架直觀、易用,同時也能提供健壯的安全性。在Apache Shiro編號為550的 issue 中爆出嚴重的 Java 反序列化漏洞。
漏洞原理:
以后研究透徹了再寫 暫時只寫利用:D
影響版本:
Apache Shiro < 1.2.4
特征判斷:
返回包中包含rememberMe=deleteMe字段
如圖:
漏洞利用:
1,環境搭建
獲取docker鏡像 docker pull medicean/vulapps:s_shiro_1 啟動docker鏡像: docker run -d -p 8080:8080 medicean/vulapps:s_shiro_1
2,利用工具
如圖:
3,漏洞利用
圖形化界面傻瓜式操作 :)
添加需要檢測的網址,事實上響應包里面存在rememberMe=deleteMe字段我們都可以進行檢測一下,這里不僅是Shiro版本小於1.2.4的,有部分Shiro升級后還是存在反序列化漏洞,詳情介紹:https://mp.weixin.qq.com/s/NRx-rDBEFEbZYrfnRw2iDw
直接下一步趴,相當於是默認選項了,在ShiroExploit工具的github介紹上,對使用 ceye.io 進行漏洞檢測
的解釋為:
程序會首先使用
URLDNS
篩選出唯一 Key,然后依次調用各個 Gadget 生成 Payload缺點:程序會使用 API:http://api.ceye.io/v1/records?token=a78a1cb49d91fe09e01876078d1868b2&type=dns&filter=[UUID] 查詢檢測結果,這個 API 有時候會無法正常訪問,導致在這種方式下無法找到 Key 或者有效的 Gadget
這里檢查是否存在默認的key,因為很多代碼都是抄來抄去的,所以很多應用的key值是相同的,Shiro key 100,詳情在:https://mp.weixin.qq.com/s/sclSe2hWfhv8RZvQCuI8LA
日常不建議全部加載嘗試,如遇到常用key跑不出來的情況可嘗試全部跑一遍。
可以看到找到匹配的key值,同時當反彈shell這些按鈕能夠選擇和輸出的話,證明反序列化漏洞是存在的,接下來就是反彈shell主機上線了,相信大師傅們比我更熟悉,沖鴨!
參考鏈接: