Vulnerabilidades en Servidores SERVLETS

Vulnerabilidades en Servidores SERVLETS
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