Wget FTP软链接攻击漏洞与CVE-2014-4877漏洞分析与验证
小编:动力软件园 时间:2014-11-06 17:04:26
wget简介
wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。wget名称的由来是“World Wide Web”与“get”的结合。
Wget也是一款命令行工具,它能通过HTTP、HTTPS以及FTP等主流协议下载WEB上的文件。Wget可以安装在任何Unix系统上,也可以在许多的系统中相互移植,其中包括win系统,Mac OS X、OpenVMS、MorphOS以及AmigaOS。此次却出现了一个严重的安全漏洞:当Wget向FTP服务器请求递归目录时,存在一个关于软链接的漏洞,它将允许黑客任意创建文件、目录或软链接(符号链接)。
漏洞原因
使用了默认的开关策略–retr-symlinks选项,没有阻止本地创建软链接
这次的漏洞出现在wget通过FTP协议递归下载远程文件的过程中。此次漏洞影响wget 1.16以下版本。想要彻底解决问题,请升级到Wget1.16版本或打上CVE-2014-4877的兼容补丁。”最新的Wget1.16版本中已经修复了此漏洞,这个版本禁用了默认配置“允许本地创建软链接”,不会再遍历他们,而是检索软链接指向的真实文件。
如果不做Wget版本升级,就需要在使用Wget时,谨慎使用–retr-symlinks选项。我们需要改变“retr-symlinks”选项默认的开关策略,阻止本地创建软链接。
除了需要改动那些“调用Wget的脚本或程序”中的参数外,还需要在Wget的配置文件中(如全局配置文件“/etc/wgetrc”,或者用户配置文件“~/.wgetrc”)加入配置选项“retr-symlinks=on”。
对漏洞进行了验证。
首先,我们在一台CentOS服务器上搭建ftp,建立软链接steal到CentOS服务上的/etc/passwd文件。
然后我们在本地的kali下测试,先看一下本地wget的版本。
可以看到版本为1.13.4,存在本次wget的漏洞。
然后通过递归下载远程的steal链接。
可以看到,下载的软链接指向了本地的/etc/passwd
通过补丁对比,看到这次的补丁默认开启了默认开启--retr-symlinks=yes,那么加上--retr-symlinks=yes会怎么样呢?
我们在kali下测试:
可以看到下载的是CentOS ftp服务器的/etc/passwd文件,并没有指向本地的文件,漏洞无法被利用了。
修复方法
更新wget到1.16版本。
请注意版权!转载须写明出处:动力软件园 http://www.pw88.com