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
búsqueda 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 búsqueda 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 búsqueda 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 …
URL: http://www.maquina_atacada.com/
Bastará con añadir la ruta del archivo include al nombre de la
url, para formar http://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 último 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 algún atacante visualice dichos archivos, debido a la
información almacenada en los motores de búsqueda, 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
Securityfocus
antonior@hispasec.com
Deja una respuesta