jueves, 4 de abril de 2013

Conociendo el atacante: Source Code Disclosure

En una serie de post que iré posteando, la idea es conocer la taxonomia de las técnicas usadas por atacantes para así evitar una intrusión a nuestros sistemas. A su vez, sirve de guía para auditorias.


SCD o Source code disclosure, es una vulnerabilidad que permite la lectura de ficheros que se encuentren en el sistema víctima,  debido a errores en la programación de páginas que realizan descargas de archivos. Esto se da debido a que no se hace un conveniente filtrado de los datos que llegan  del cliente, permitiéndonos obtener cualquier fichero del cual conozcamos su ruta dentro del servidor.
Un ejemplo de un código vulnerable es el siguiente:

$f = $_GET["f"];
header(“Content-type: application/octet-stream”);
header(“Content-Disposition: attachment; filename=\”$f\”\n”);
$fp=fopen(“$f”, “r”);
fpassthru($fp);
?>

En él se observa cómo se insertan los datos directamente dentro de la función fopen, sin ningún tipo de validación o verificación, ocasionando que el fichero sea descargado sin inconveniente.
A continuación presento la explotación de este ataque en una página vulnerable. Los datos fueron modificados para proteger el sitio original.
Se tiene la siguiente ruta: www.ejemplo.com/download.php?id=archivos.pdf
En ella, la variable id recibe el archivo a descargar, en este caso archivos.pdf, reemplazamos este documento por el nombre de fichero o página que queramos obtener, para este ejemplo, el objetivo es encontrar las credenciales de conexión de la base de datos, para ello le damos como valor a la variable id el fichero download.php, como se muestra en la figura 1.

Figura 1 Descarga del fichero
En la figura 2 se presenta el código del archivo, brindándonos información adicional, como lo es el fichero con_str.php, el cual podría ofrecernos datos sensibles, puesto que es requerido al cargar la página, pudiendo contener los datos de la conexión.  A continuación, procedemos a su descarga, figura 3.

Figura 2 Código fuente fichero download.php

Figura 3 Descarga del fichero con_str.php
Como se dijo anteriormente, el fin principal de la explotación de esta vulnerabilidad es tener acceso a documentos existentes en el servidor objetivo, para este caso, el nuestro, era conseguir las credenciales que nos permitirán tener acceso a la base de datos. Con esta información en nuestras manos solo nos faltará acceder como un usuario legítimo al sistema. Figura 4 y 5.

Figura 4 Archivo de conexión de la base de datos

Figura 5 Conectándose a la base de datos

Fuente: http://www.flu-project.com/source-code-disclosure.html



No hay comentarios:

Publicar un comentario