martes, 9 de julio de 2002

Acceso al directorio 'WEB-INF' en diversos servidores de aplicaciones web

Existe una vulnerabilidad, presente en las versiones para Windows
de servidores de aplicaciones y contenedores de servlets J2EE,
que permite el acceso a los archivos presentes en el directorio
WEB-INF.
Los sistemas vulnerables son:

* EA Serve (Sybase), versión 4.0
* OC4J (Oracle)
* Orion versión 1.5.3
* JRun (Macromedia) versiones 3.0, 3.1 y 4.0
* HPAS (Hewlett Packard) versión 3.0
* Pramati versión 3.0
* Jo!

Una aplicación web ("web app") es una colección de servlets, JSP
("Java Server Pages"), documentos HTML, imágenes y otros archivos
empaquetados de una forma tal que permite una rápida instalación
en cualquier servidor web que de soporte a servlets.

Estas aplicaciones habitualmente se encuentran empaquetadas en
archivos .WAR, con una estructura estándar similar a la
siguiente:

index.html
algo.jsp
images/on.gif
images/off.gif
WEB-INF/web.xml
WEB-INF/lib/algo.jar
WEB-INF/classes/MyServlet.class
WEB-INF/classes/com/empresa/etc/servlet/empWebServlet.class
...

Esta estructura facilita la portabilidad de las aplicaciones
entre diferentes servidores. El directorio "WEB-INF" es especial:
cualquier cosa contenida dentro de él no debe ser visible a los
clientes web ya que contiene la clase Java y la información de
configuración de la aplicación web. Por tanto, cualquier intento
de acceso al directorio habitualmente resulta en un código de
error HTTP 404 (no encontrado) o 403 (acceso no permitido).

El archivo web.xml situado dentro del directorio "WEB-INF", al
que habitualmente se conoce como el "descriptor para despliegue",
contiene información detallada sobre la aplicación web: mapeos de
URL, detalles del registro del servlet, tipos MIME, restricciones
de seguridad a nivel de página... etc.

Existe una vulnerabilidad en los servidores de aplicaciones y
contendedores de servlets citados más arriba que puede permitir a
un atacante acceder a la información existente dentro del
directorio "WEB-INF". Consiste, simplemente, en añadir un punto
(".") a continuación del nombre del directorio:

http://www.unservidor.com/WEB-INF./web.xml
http://www.unservidor.com/WEB-INF./classes/MyServlet.class

Esta vulnerabilidad combina un error en el filtrado de URL que
realizan los servidores de aplicaciones con una característica
del sistema de archivos de Windows: se ignora el punto final en
cualquier vía de acceso o nombre de archivo.

Los diversos fabricantes afectados por la vulnerabilidad han
publicado los parches o versiones actualizadas:

* EA Server de Sybase
Actualización a la versión 4.1
* OC4J de Oracle
Actualización a la versión 9.0.2 de OC4J/9iAS, disponible en
http://otn.oracle.com/software/products/ias/devuse.html
* Orion Server
Actualización a la versión 1.5.4
* JRun 3.0, 3.1 y 4.0
Parche disponible en
http://www.macromedia.com/v1/handlers/index.cfm?ID=23164
* HPAS
Solucionado mediante el paquete de mantenimiento 8
* Pramati
Solucionado en el Service Pack 1.
* Jo!
Actualización a la versión 1.0b7



Xavier Caballé
xavi@hispasec.com


Más información:

Sybase - EA Server
http://www.sybase.com/products/applicationservers/easerver/

Oracle - OC4J
http://otn.oracle.com/software/products/ias/devuse.html

Orion Server
http://www.orionserver.com

HPAS - Hewlett Packerd
http://www.hpmiddleware.com/SaISAPI.dll/SaServletEngine.class/products/hp-as/default.jsp

Pramati
http://www.pramati.com

Jo!
http://sourceforge.net/projects/tagtraum-jo



No hay comentarios:

Publicar un comentario