Descubrir Contenido Oculto con Zed Attack Proxy

  • Posted on: 16 October 2014
  • By: ReYDeS

Es común para las aplicaciones contener contenido y funcionalidades las cuales no están directamente enlazadas o no factibles de ser alcanzadas desde un contenido principal visible. Un ejemplo común de esta funcionalidad es aquella implementada para propósitos de prueba o depuración la cual nunca fue removida.

Otro ejemplo surge cuando las aplicaciones presentan funcionalidades diferentes para categorías de usuarios diferentes (por ejemplo, usuarios anónimos, usuarios regulares autenticados, y administradores). Usuarios con un nivel de privilegio quienes realizan un spidering exhaustivo de la aplicación web pueden perder alguna funcionalidad la cual es visible a usuarios en otros niveles. Un atacante que descubra estas funcionalidades podría ser capaz de explotarlas para elevar privilegios dentro de la aplicación web.

Existen otros incontables casos en los cuales contenido o funcionalidad interesante puede existir, que las técnicas de mapeo previamente realizadas podrían no identificar. A continuación algunos ejemplos.

Copias de Seguridad de archivos en funcionamiento. Para el caso de páginas dinámicas, sus extensiones del archivo pueden haber sido cambiadas a una no factible de ser mapeada como ejecutable, permitiendo revisar el código fuente de la página por vulnerabilidades que luego pueden ser explotadas.

Hacer clic en la pestaña “Request” o Petición habiendo seleccionando previamente la interacción pertinente.

Para el presente ejemplo se realizará un fuzzing contra las extensiones del archivo “index.php”. En la nueva ventana presentada seleccionar el archivo de nombre “extensiones.txt”, para luego hacer clic en el botón “Fuzz”.

En los resultados obtenidos es sencillo identificar la existencia de un archivo de nombre “index.bak”. Para esto solo verificar la información expuesta principalmente por las columnas “Status” o Estado y “Reason” o Razón.

Este archivo puede ser descargado, el cual al visualizarlo expone código PHP.

También es factible encontrar copias de seguridad o de respaldo (Backups) conteniendo una captura completa de un conjunto o la totalidad de los archivos dentro del directorio web raíz, permitiendo fácilmente identificar todo el contenido y funcionalidad dentro de la aplicación.

Para el siguiente ejemplo se hace una inferencia en base al nombre del directorio en el cual reside la aplicación, dado que el directorio tiene asignado el nombre “joomla” se buscarán en la raíz del servidor web, archivos comprimidos con este nombre.

Se realiza una petición con una extensión aleatoria, para luego seleccionarla y elegir la opción “Fuzz”.

En la nueva ventana presentada se selecciona un archivo el cual contiene una lista de extensiones para archivos comprimidos.

Para visualizar los resultados hacer clic en la pestaña de nombre “Fuzzer” ubicado en el panel inferior. Nuevamente se obtiene un resultado satisfactorio dada la existencia del archivo de nombre “joomla.zip”

Este archivo también puede ser descargado, descomprimido y su contenido analizado.

Utilizando un mecanismo similar se pueden obtener versiones antiguas de archivos, archivos fuentes, archivos de configuración o inclusión, y de igual manera funcionalidades desplegadas en el servidor con propósitos de prueba.

Fuentes:

https://code.google.com/p/zaproxy/wiki/HelpStartConceptsFuzz
https://code.google.com/p/zaproxy/
http://www.file-extensions.org/filetype/extension/name/temporary-files
http://en.wikipedia.org/wiki/List_of_archive_formats

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Webinar Informática Forense