miércoles, junio 23, 2010

La FOCA y los verbos inseguros

Dentro de las especificaciones del protocolo HTTP se definieron una serie de verbos para dialogar con el servidor web. Por supuesto, a parte de los archi-famosos GET y POST existe una lista de verbos definidos en el estándar y mecanismos para extender y crear nuevos verbos.

Algunos que se usan comúnmente son HEAD, que en la FOCA se usa para descubrir el tamaño del fichero en la búsqueda de documentos antes de descargarlos y OPTIONS que permite ver la lista de verbos habilitados en una web tal y como se puede ver en la siguiente captura.


Figura 1: Uso de Options para descubrir los verbos habilitados

Sin embargo, algunas aplicaciones web habilitan los verbos para la manipulación de ficheros en el servidor, tales como DELETE, MOVE, COPY o PUT, ambos habilitados en el servidor utilizado para hacer la captura de la figura 1.

PUT permite subir ficheros o reemplazarlos si se sube un fichero con PUT y éste existe. entonces se machacaría el anterior. Estos comportamientos pueden suponer un riesgo para la seguridad de un sitio si se dejan habilitados en directorios públicos. Por supuesto, a pesar de que esté habilitado el verbo PUT o DELETE, después debería tener permisos el usuario con que corre el pool de la aplicación para escribir en el sistema de ficheros, pero, si así fuera, subir un Shell Web en PHP, ASP, JSP o lo que soporte el sistema sería trivial. Con un sencillo PUT /fichero.php HTTP/1.1 ya te puedes poner a escribir el código fuente.

Además de estos verbos, si el servidor a habilitado el protocolo WebDAV [Web-based Distributed Authoring and Versioning] aparecerán los verbos de trabajo colaborativo con documentos como LOCK, UNLOCK, PROPFIND, PROPPATCH y MKCOL.

Lógicamente, cuando haces una auditoría de seguridad a un servidor web es conveniente revisar esto que, aunque parezca una burrada, puede que alguien haya cometido el error de dejar algún directorio publicado con estos verbos.

Para agilizar este proceso, la FOCA que tenemos interna ya realiza esta búsqueda. Por cada dominio web que se descubre se genera una lista de URLs detectadas en los buscadores. Estas URLs pueden venir de la búsqueda de documentos, de la búsqueda de servidores (usando el panel de DNS Search), buscando las tecnologías utilizadas en el dominio o, directamente, buscando todos los links en los buscadores relativos a ese dominio.

FOCA sacará todos los directorios y realizará dos pruebas: Si el directorio está abierto y cuáles son los verbos inseguros en ese dominio. Los resultados salen como se pueden ver en la imagen siguiente.


Figura 2: Verbos inseguros descubiertos por FOCA

Si estás a cargo de la seguridad de un sitio web, cuidado con los verbos que tienes habilitados.

Saludos Malignos!

4 comentarios:

  1. Me parece entender en la imagen que en la tabla con los verbos habilitados hay una fila por verbo y directorio, por ejemplo un directorio con dos verbos igual a dos filas.

    ¿No sería más cómodo poner una fila por directorio, con los verbos habilitados en la misma casilla?

    ResponderEliminar
  2. otra buena funcionalidad. La foca cada día más rica!

    enhorabuena a todo el equipo, buen trabajo!

    ResponderEliminar
  3. Al final tendre que volver a usar Windows... ;)

    Lo que me extraña es no haber visto aun un icono de un demonio en la FOCA :P

    ResponderEliminar