目錄
- 原理解釋
- 環境搭建
- 復現程序
原理解釋
??Apache Shiro是一個Java安全框架,執行身份驗證、授權、密碼和會話管理,
??shiro默認使用了CookieRememberMeManager,其處理cookie的流程是:得到rememberMe的cookie值–>Base64解碼–>AES解密–>反序列化,然而AES的密鑰是硬編碼的,就導致了攻擊者可以構造惡意資料造成反序列化的RCE漏洞,該漏洞對shiro<=1.2.4的版本有影響,
??硬編碼是將資料直接嵌入到程式或其他可執行物件的源代碼中的軟體開發實踐,
??硬編碼密碼是指在程式中采用硬編碼方式處理密碼,這種處理方式一方面不易于程式維護,在代碼投入使用后,除非對軟體進行修補,否則無法修改密碼,另一方面會削弱系統安全性,硬編碼密碼意味著擁有代碼權限的人都可以查看到密碼,可以使用密碼訪問一些不具有權限的系統,更嚴重的是如果攻擊者能夠訪問應用程式的位元組碼,利用一些反編譯工具就能閱讀到代碼,可以輕易獲得密碼,
環境搭建
1.下載鏡像
docker pull medicean/vulapps:s_shiro_1
2.運行在8091埠
docker run -d -p 8091:8080 medicean/vulapps:s_shiro_1
3.安裝模塊
pip3 install pycrypto
4.上傳生成payload的腳本
命令列輸入rz并回車,可打開上傳頁面,選擇shiro_poc.py進行上傳,注意需要進入/tmp/目錄后再進行下載
5.安裝ysoserial的jar檔案
git clone https://github.com/frohoff/ysoserial.git
cd ysoserial/
mvn package -DskipTests
此處提示命令找不到,因此需要對 mvn進行安裝
apt update
apt upgrade
apt install maven
mvn -version
注:安裝mvn需要在jdk已經安裝的前提下,kali默認有安裝,
如下圖所示則安裝成功,

重新執行
mvn package -DskipTests
發現報錯

上網查了之后發現原因如下,但是我也不是很懂他在說什么

所以重新開始安裝java
安裝java時因為kali有自帶openjdk,所以安裝時安裝成功了,但是運行java -version的結果還是openjdk,運行javac -version顯示無該命令,下載了新的kali虛擬機后安裝Java還是不行,
于是就直接下載了ysoserial.jar然后上傳到同一目錄
復現程序
復現程序參考該篇文章
https://www.cnblogs.com/paperpen/p/11312671.html
最終復現成功,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/51319.html
標籤:其他
上一篇:滲透測驗實戰第三版學習筆記(二)
