¿Qué es una vulnerabilidad File/Path Disclosure?

Una vulnerabilidad del tipo File o Path Disclosure es cuando queda al descubierto la ruta de la aplicación o script en ejecución y de esta forma saber en que directorio especificamente se encuentra el sitio web. A simple vista parece ser inofensivo, pero cuando se necesita subir maliciosamente un archivo o descargar algo indevidamente, esto es muy útil.

disclosure

Esta vulnerabilidad corresponde a un error de programación al no atajar correctamente los errores o excepciones, por ejemplo, uno de los casos mas frecuentes se da con la famosa función include o requiere (en php):

  1. <?php
  2. include($_GET[‘section’].".php");
  3. ?>

Es muy común ver en sitios web como se pasa por parámetro la sección, algo similar a https://sitio.cl/index.php?section=contacto, entonces el script index.php recibe la variable “section”, le agrega la extension .php y la incluye, pero …

¿Qué pasa cuando cambiamos contacto por letras al azar como fdsghjk?
Fácil, la función include intentará incluir el archivo fdsghjk.php y como no existe, php mostrara un error parecido a Failed to open stream: No such file or directory in /home/web/public_html/index.php y con esto, ya tenemos la ruta donde se está ejecutando la aplicación: /home/web/public_html. De esta forma se nos facilita un ataque LFI o RFI.

6 comentarios

  1. Muy buenos post Zerial, te felicito.. Se puso mas interesante el BLOG…
    Saludos!!

  2. Eres una traviesa.

  3. Zerial

    julio 14, 2009 a las 10:52 pm

    xD

  4. via @owasp, para forzar un error:
    http://site.com/index.php?page%5B%5D=about

    (en caso de que la pagina filtre, se podria forzar el error)

  5. el wp filtro el enlace del comentario anterior. la idea era hacer poner “page” como si fuese un array (page\[\]=about).

  6. Zerial

    julio 18, 2009 a las 9:36 am

    @ramonramon: Tambien el caracter %00 nos ayuda a forzar errores

    saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Esto sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.