Arbitrary File Download

Iniciado por M5f3r0, Noviembre 02, 2013, 02:54:01 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 02, 2013, 02:54:01 PM Ultima modificación: Agosto 09, 2014, 09:45:41 AM por Expermicid

Ejemplo de Arbitrary File Downloading en Wordpress

Buenas comunidad de Underc0de, Algunos deben saber o pudieron haber notado estuve varios días o hasta creo que hasta 1 MES sin actividad, era debido a que no tuve Internet para comunicarme pero ahora ya me llego la reconexión y intentare hacer post's más seguidos ya sean relacionados con la Seguridad web u la programación, o algún otro tema en particular con referencia a la informática en general. 

Bueno, en fin, en esta ocasión a hablarles acerca de "Arbitrary file download" o en español "Descarga arbitraria de ficheros/archivos", así que vayamos a ello.

Introducción

A lo largo del tiempo se han descubierto muchos tipos de técnicas y metodologías de trabajo acerca de temas variados tanto en la [In]seguridad web como en la [In]seguridad informática, en la que muchos atacantes las emplean para su indebido uso en la auditoria de sistemas informáticos.

En la inseguridad web han surgido múltiples bugs y vulnerabilidades en la cual el nivel de peligrosidad es alto, con las cuales se han llegado a interceptar muchas veces la seguridad del sistema. Por lo tanto, debemos estar atentos a la hora de programar o analizar líneas de código en nuestros ficheros.

Y si vamos a usar una CMS como plantilla de nuestro sitio web, debemos hacer uso de una en la que ya tengamos información acerca de su entorno en el sistema.

Por lo tanto de lo hablado en está pequeña introducción, lo que queremos decir es que la seguridad es muy importante llevarla a cabo en el sitio web, ya que como sabemos aún existen atacantes que no tienen nada de ética y tienen como fin la alteración del sitio web sin razón alguna.

¿Qué es "Arbitrary File Download"?

La Arbitrary file download vendría siendo una técnica perteneciente al árbol de la inseguridad web, en la cual se lleva a cabo la descarga de archivos arbitrarios del servidor web. Por ejemplo, la descarga con referencia a la configuración MySQL del servidor, o hasta podemos llegar a descargar archivos que no se encuentran en el directorio de raíz (si es que tiene el servidor incorporado en su pc y no usa un hosting). Ej: descargar.php?archivo=../.. /.. /.. /Windows/archivo

Esta vulnerabilidad es de un alto peligro, ya que un atacante podría descargar archivos con información privada del usuario que pueda llegar a alterar todo el sistema.

Es provocada debido a que no hay validación en el nombre del archivo a descargar, por lo tanto, debemos añadirle una para evitar que cualquier intruso pueda hacer la descarga de cualquier archivo perteneciente al servidor.

Escenario

Para llevarla a cabo, debemos comprobar si la aplicación es vulnerable. Para ello, debemos realizar un análisis al sitio web para chequear si tiene algún servicio de descarga de archivos, lo más común es la descarga de libros o PDFs en sitios web, entonces, supongamos que tenemos el siguiente parámetro:

descargar.php?archivo=libro.pdf

Como pueden notar, al ejecutarlo la acción automáticamente se descargara el archivo "libro.pdf", PERO, que pasaría si en el código del archivo no hay una validación con el nombre "libro.pdf"?, es decir, podríamos descargar cualquier archivo que se encuentre en el servidor.

Algo fundamental al momento de realizar este proceso, es tener el cuenta el ../ , con lo cual se realiza un recorrido hacía atrás de directorio. Es decir, si el archivo vulnerable se encuentra dentro de una carpeta y queremos descargar un archivo que se encuentra fuera de esa carpeta, deberíamos hacer un recorrido hacía atrás, para ello usamos el ../ , ejemplo:

descargar.php?archivo=../index.php

Y automáticamente se descargara el archivo "index.php". Con esto, ya tendremos por seguro que la aplicación es vulnerable.

Metodología de trabajo

Aquí les vengo a mostrar una metodología de trabajo para su uso al momento de tener una aplicación web vulnerable, es el proceso de análisis en el archivo, debemos ver si existe o se está requiriendo de algún otro archivo del servidor, por ejemplo si vemos que se requiere un proceso en un formulario podemos seguirlo y descargarlo.

Si conocemos alguna otra página existente en el sitio web, lo descargamos igualmente en el servidor y vemos que tiene incluido, más que todo deberíamos descargar una página en la que notemos que requiere de la ejecución de consultas al servidor MySQL, ya que estás páginas requieren de la configuración a la base de datos.

La mayoría de estás páginas pueden ser:

- Página de contactos
- Registro
- Logeo
- Noticias con comentarios
- Búscadores


Entre otros, aunque también podemos usar el método brute force.

Otro método de trabajo sería la búsqueda de archivos fuera del directorio raíz, un ejemplo sería lo siguiente:

descargar.php?archivo=../.. /.. /.. /Windows/System32/drivers/etc/hosts

Con esto descargaríamos el archivo "hosts" de la carpeta windows.

Y bueno, eso ha sido todo! espero les haya gustado.

Saludos, M5f3r0!
A veces, observo mi pasado y me arrepiento en la actualidad de todo lo que llegue a perder y olvidar por como me veía la sociedad, nunca dejes que las opiniones de los demás te lleguen a afectar moralmente hasta el punto en que dejes de hacer lo que más te apasiona, saludos! (msj escrito en el 2016)


muy bueno, se agradece el aporte :)

saludos!