Apereo CAS 4.1 反序列化命令执行漏洞
Apereo CAS是一款Apereo发布的集中认证服务平台,常被用于企业内部单点登录系统,其4.1.7版本之前存在一处默认密钥changeit的问题,利用这个默认密钥我们可以构造恶意信息触发目标反序列化漏洞,进而执行任意命令。
Webflow中使用了默认密钥changeit:
public class EncryptedTranscoder implements Transcoder {
private CipherBean cipherBean;
private boolean compression = true;
public EncryptedTranscoder() throws IOException {
BufferedBlockCipherBean bufferedBlockCipherBean = new BufferedBlockCipherBean();
bufferedBlockCipherBean.setBlockCipherSpec(new BufferedBlockCipherSpec("AES", "CBC", "PKCS7"));
bufferedBlockCipherBean.setKeyStore(this.createAndPrepareKeyStore());
bufferedBlockCipherBean.setKeyAlias("aes128");
bufferedBlockCipherBean.setKeyPassword("changeit");
bufferedBlockCipherBean.setNonce(new RBGNonce());
this.setCipherBean(bufferedBlockCipherBean);
}
环境说明:
使用腾讯云轻量服务器安装vulhub
系统:ubuntu20.04
1、进入/vulhub/apereo-cas/4.1-rce目录,使用命令启动漏洞环境:
done表示环境已开启 。
2、使用docker-compose ps 查看漏洞存在的端口:
可以看到相关端口是8080。
3、通过访问your-ip:port可以看到apereo-cas
4、下载利用工具
5、执行命令
命令:java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "mkdir 123"
生成payload
6、点击登录,再通过burp suite抓包
抓包后发送至repeater模块,修改参数“execution”为生成的payload:
修改前:
修改后:
7、/vulhub/apereo-cas/4.1-rce里执行sudo docker ps查看容器名称
sudo docker exec -it b626248483e5
cd /usr/local/tomcat
ls
可以看到“123”命令执行成功
参考链接:
- https://apereo.github.io/2016/04/08/commonsvulndisc/