Note: The stoplight on this page indicates the highest severity level for this category of vulnerabilities. Please refer to the dot beside the link to this tutorial on the previous page to find out the true severity level.
Three of the file types for which IIS accepts requests are .HTR files (for remote administration of passwords), .IDC files (Internet Database Connectors), and .STM files (server side include files). Whenever any file of one of these types is requested by a client, a corresponding DLL file is executed on the server, regardless of whether or not the requested file actually exists on the server.
The "../" string in a pathname usually indicates a parent directory. IIS rejects URLs containing this string, thereby preventing web users from accessing files outside of the web document root directory. However, by representing this string in a Unicode format, it is possible for a remote user to bypass the safeguard and gain unauthorized access to any file or system command located on the same logical drive as the web root directory. The attacker would have the privileges of the IUSR_machinename account, where machinename is the name of the system. This account, if included in the Everyone and Users groups, could be used to execute almost any command on the system.
In Microsoft IIS version 4.0, the DLL files which are executed when .HTR, .IDC, or .STM files are requested have a buffer overflow condition which could allow an attacker to crash the server or execute arbitrary commands on the web server.
This vulnerability could not be confirmed by a remote scan. The server is not vulnerable to this attack if any of the following conditions exist:
If none of the above conditions exist, then the server is probably vulnerable.
When the web server receives a request for a .exe or .com file under an executable directory, the system calls cmd.exe to process the requested program. Anything following the filename in the request is interpreted as a command-line argument. Some arguments, such as an ampersand (&), could cause the remaining arguments to be interpreted as a new command. Thus, if an attacker knows the path and filename of a batch of .cmd file under an executable directory, he or she could run arbitrary commands by sending a specially crafted request for that file.
Similarly, script interpreters such as perl.exe and php.exe, could be tricked into running arbitrary commands by a specially crafted request for the corresponding type of file.
One of the headers that can appear in an http request is Translate: f. This header is supposed to allow FrontPage2000, or any WebDAV compatible client, to retrieve the source code of scriptable pages for editing. Due to a bug, any client can retrieve the source code in this manner.
If good security practices are in use, the source code will not include any sensitive information, making this vulnerability minor. However, many scriptable pages on web servers include passwords or other sensitive information in the source, which could be used by an attacker to launch a more destructive attack.
For the buffer overflow in IIS 4.0, install Service Pack 6. If you do not wish to install the service pack, then install the ext-fix hotfix or apply the workaround for this vulnerability. See Microsoft Knowledge Base article Q234905 for information on the hotfix and the workaround.
For the filename inspection vulnerability, install the patch referenced in Microsoft Security Bulletin 00-086.
For the specialized header vulnerability, install the patch.
More information on the folder traversal vulnerability is available from Microsoft Security Bulletin 00-078 and a posting to Bugtraq.
More information on the buffer overflow vulnerability is available from Microsoft Security Bulletin 99-019 and from Microsoft Knowledge Base article Q234905.
More information on the filename inspection vulnerability can be found in Microsoft Security Bulletin 00-086 and NSFOCUS Security Advisory 2000-07.
More information on the specialized header vulnerability is available from Bugtraq and Microsoft Security Bulletin 00-058.