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