天天看點

CVE-2017-17405漏洞複現

Ruby Net::FTP 子產品是一個FTP用戶端,在上傳和下載下傳檔案的過程中,打開本地檔案時使用了

open

函數。而在ruby中,

open

函數是借用系統指令來打開檔案,且沒用過濾shell字元,導緻在使用者控制檔案名的情況下,将可以注入任意指令。

啟動docker

service docker start
           

在Vulhub中加載CVE-2017-14015漏洞環境。

cd vulhub/ruby/CVE-2017-14015
docker-compose up -d
           

運作一個可以通路到的FTP用戶端。可以使用python運作pyftpdlib,如果沒有對應環境安裝就好了。

#安裝pyftplid
pip install pyftpdlib
#在目前目錄下使用python生成一個ftp伺服器,預設監聽在0.0.0.0:2121端口。
python -m pyftpdlib -p 2121 -i 0.0.0.0
           

然後即可開始利用漏洞。注入指令

|touch${IFS}success.txt

(空格用

${IFS}

代替),發送如下資料包即可。

CVE-2017-17405漏洞複現

FTP伺服器出現通路記錄

CVE-2017-17405漏洞複現

然後進入docker容器内,可見success.txt已被建立。

CVE-2017-17405漏洞複現

繼續閱讀