Las páginas asp que presentan errores en tiempo de ejecución se ven expuestas a un agujero de seguridad que revela parte de su código fuente.
El lenguaje asp surge como una extensión al código html para permitir un mayor dinamismo en la presentación de contenidos y obtener una mayor potencia del servidor web. Pero si la programación de estas páginas no se realiza de forma correcta puede producir graves problemas que pueden permitir a un atacante la posibilidad de acceder a datos, robar información e incluso llegar a tomar el control de la maquina.
Si existen errores en una página asp o en sus componentes se pueden producir mensajes de error que incluyan la ruta de los archivos include que se usan para la creación del archivo asp. Estos archivos archivos include pueden por tanto recibirse y pueden incluir información sensible como localización de recursos, estructura del sitio web y de la red y modelos de negocios.
El problema es más grave aun, ya que en determinadas ocasiones estas p ginas asp fallidas son indexadas por los motores de bosqueda lo cual permite a un potencial atacante realizar consultas en estos motores para localizar sitios web con este problema.
Por ejemplo, basta acudir al motor de bosqueda Altavista (www.altavista.com) y realizar una consulta como +»Microsoft VBScript runtime error» +».inc, «. Tras ello, se debe buscar en los resultados la ruta y el nombre del fichero include, a lo cual se a_adir la direcci¢n web del servicio vulnerable. S¢lo queda cargar dicha p gina en el navegador.
Por ejemplo, tras realizar la bosqueda especificada se puede producir una respuesta como la siguiente:
Microsoft VBScript runtime error ‘800a0005’ Invalid procedure call or argument: ‘mid’ /include/browser.inc, line 4 … www.maquina_atacada.com/
Bastar con a_adir la ruta del archivo include al nombre de la url, para formar www.maquina_atacada.com/include/browser.inc
Para solucionar este problema se pueden tomar varias acciones, en primer lugar es misi¢n de los programadores realizar una depuraci¢n completa y adecuada del contenido asp antes de su publicaci¢n. Tambi’n se puede obligar al servidor IIS a no mostrar los mensajes de error al navegador. Para ello, en IIS 4.0, en el Administrador de Servicios Internet (Internet Service Manager) abrir las propiedades del sitio web que se desea tratar. Seleccionar la leng_eta Directorio (‘Directory’ o ‘Home Directory’) y bajo Aplicaciones (‘Applications’ ) pulsar Configuraci¢n (‘Configuration’). Seleccionar Depurado App (‘App Debugging’) y seleccionar Enviar mensaje de error al cliente (‘send text error message to client’) y por oltimo introducir el texto deseado. Tambi’n se puede hacer uso de ACLs para restringir el acceso a todos los archivos que no deban ser enviados al navegador.
El problema radica en que si el servidor se ve afectado por este problema, aunque se trate y se consiga solucionar mediante los medios anteriormente indicados, aun podr existir la posibilidad de que algon atacante visualice dichos archivos, debido a la informaci¢n almacenada en los motores de bosqueda, por lo cual tambi’n ser recomendable renombrar todos los archivos .inc, incluso es recomendable pasar dichos archivos a c¢digo asp.
M s informaci¢n:
Packetstorm
http://packetstorm.securify.com/0002-exploits/asp.runtime-error.txt
Securityfocus
http://www.securityfocus.com/level2/bottom.html?go=vulnerabilities&id=978
Antonio Ropero
antonior@hispasec.com