El fallo permite modificar el valor de la variable «SERVER_NAME». Esto supone un problema para todas aquellas páginas ASP que en su código hagan uso de la misma. Incluso la página «500-100.asp» que incluye IIS 5.X y IIS 6 hace uso de esta variable. Eso permite revelar código de aquellas páginas que por algún motivo produzcan un error y lanzen esta página. Modificando la petición podemos lograr que la variable «SERVER_NAME» cambie su valor a «localhost» con lo cual la página «500-100.asp» revelará el código ASP causante del error.
Consejos
· Configurar siempre las cabeceras de host aunque sólo tengamos un sitio con un solo nombre en la misma dirección IP.
· Asociar el sitio a un interfaz de red específico.
· Modificar la página 500-100.asp localizada en %windir%/iishelp/common. Hacer el siguiente cambio, reemplazar la línea de código:
If (strServername = «localhost» Or strServerIP = strRemoteIP) And objASPError.File <> «?» Then
por
If (strServerIP = strRemoteIp) And objASPError.File <> «?» Then
Referencias
Remote IIS 5.x and IIS 6.0 Server Name Spoof
http://ingehenriksen.blogspot.com/2005/08/remote-iis-5x-and-iis-60-server-name.html
The custom error page 500-100.asp may return sensitive information in Internet Information Services 5.0 and in Internet Information Services 5.1 (KB-906910)
http://support.microsoft.com/default.aspx?scid=kb;en-us;906910
CAN-2005-2678 (under review)
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2678
Microsoft IIS «500-100.asp» Source Code Disclosure
solicitando significado