vulhub漏洞复现系列之Apereo CAS 4.X反序列化漏洞-爱代码爱编程
昨天复现的时候,同事看到了我在复现这个cas,他和我说现在企业用的都是5.x、6.x的了,4.x已经很少了,但没办法还得了解一下。他还说要想真正了解cas单点登录,要自己搭一遍这个系统,了解整个的架构,踩过了那些坑才能真正吃透,苦于最近确实时间不太够,就先留着以后学习吧。
漏洞简介:Apereo CAS是一款Apereo发布的集中认证服务平台,常被用于企业内部单点登录系统。其4.1.7版本之前存在一处默认密钥的问题,利用这个默认密钥我们可以构造恶意信息触发目标反序列化漏洞,进而执行任意命令。
影响范围:4.1.7之前
漏洞分析:漏洞产生的原因是execution参数,抓包后看到参数是经过加密了的,所以要想利用这个漏洞就得知道他是怎么加密的,分析过程主要参考
https://www.freebuf.com/vuls/226149.html
主要就是execution值会被flowExecutionKey通过getFlowExecutionKey方法获取,通过"-"分割字符串为两部分uuid以及base64编码flowstate,对格式进行判断,满足格式就可以继续进行,再后来就是对参数进行base64解码,反序列化,触发漏洞。
漏洞复现:
使用ysoserial的CommonsCollections4生成加密后的payload,
java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 “touch /tmp/lin”
进入192.168.174.130:8080/cas/login,随便输入账号密码,使用bp抓包,修改包中的execution值,替换为刚才生成的payload
进入靶场镜像中查看,lin文件成功创建。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/weixin_43071873/article/details/110855908