//

sábado, 22 de diciembre de 2012

Source Code Disclosure

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:

<?php
$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.


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.

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.



Este articulo lo escribí inicialmente para Flu-Project, se puede acceder a el siguiendo este link:

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

2 comentarios:

Muy buen artículo, en ámbitos bruscos puedo hasta bajarme archivos propios del mismo sistema, y lograr hasta rootear... =D

Gracias por tu comentario!. Y pues ya todo depende en la imaginación del atacante :) Saludos!!

Publicar un comentario