¿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):

PRE0

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.

Comentarios (5)

MagnoBalt
Muy buenos post Zerial, te felicito.. Se puso mas interesante el BLOG...
Saludos!!
Panic
Eres una traviesa.
ramonramon
via @owasp, para forzar un error:
http://site.com/index.php?page[]=about

(en caso de que la pagina filtre, se podria forzar el error)
ramonramon
el wp filtro el enlace del comentario anterior. la idea era hacer poner "page" como si fuese un array (page\[\]=about).
Zerial
@ramonramon: Tambien el caracter %00 nos ayuda a forzar errores

saludos

Deja un comentario