CVE-2017-17405漏洞复现

没有检索到摘要

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、漏洞简述

Ruby Net::FTP 模块是一个FTP客户端,在上传和下载文件的过程中,打开本地文件时使用了open函数。而在ruby中,open函数是借用系统命令来打开文件,且没用过滤shell字符,导致在用户控制文件名的情况下,将可以注入任意命令。

Net::FTP#get、getbinaryfile、gettextfile、put、putbinaryfile和puttextfile使用Kernel#open打开本地文件。如果localfile参数以管道字符“|”开头,则执行管道字符后面的命令。localfile的默认值是文件.basename(remotefile),因此恶意的FTP服务器可能导致任意命令执行。

影响版本:

Ruby 2.2系列:2.2.8及更早版本

Ruby 2.3系列:2.3.5及更早版本

Ruby 2.4系列:2.4.2及更早版本

Ruby 2.5系列:2.5.0-preview1

在主干修订版r61242之前

修复:

Ruby团队只是用File.open函数替换了open函数,而File.open函数不容易受到命令注入的影响。

二、漏洞复现

本操作使用kali 机为攻击机,ip为192.168.187.134

ubuntu上使用 vulhub为靶机,ip为192.168.187.133

 

在kali机上 打开docker

service docker start

 

在ubuntu 上加载CVE-2017-14015漏洞环境

cd /vulhub-master/ruby/CVE-2017-17405

docker-compose build

docker-compose up -d

在kali运行一个可以访问到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}代替),发送如下数据包即可。

然后在浏览器中会提出文件下载, 保存下载文件

 

在kali中 查看FTP服务器出现的访问记录

然后在ubuntu靶机中运行命令

docker ps -a

进入docker容器,依次执行下列命令,查看已经被保存的success.txt文件

参考链接

https://blog.youkuaiyun.com/weixin_44253823/article/details/102917806

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值