martes, 19 de julio de 2011

Full path disclosure


Full Path disclosure

Al castellano se traduce como: divulgación de ruta completa

Es una vulnerabiidad muy habitual en las aplicaciones Web, consiste en encontrar un Script vulnerable, el cual te devuelba un error donde revele la ruta completa del recurso al que se desea acceder.

La vulnerabilidad en sí, no es de mucha importancia, pero si puede ser en un segundo plano para un atacante en la red, ya que se descubre la ruta entera de un sistema y en ella esta el nombre de usuario, cullo nombre se puede usar por ejemplo en ataques de tipo injeccion SQL.

Este error se consigue usando caracteres inesperados en parametros especificos de una aplicación Web,

Esta infomacion puede llegar a ser vital en ciertos casos, sobre todo al provar un valor falso o verdadero en una injeccion SQL (Blind SQL Injeccion) en el panel de control de una pagina web.

La aplicación web puede ser vulnerable a una FPD que se hace eco de la ubicación de una base de datos de archivos planos, lo que puede incluir la información administrativa, como contraseñas panel de administración, direcciones de correo electrónico, o contraseñas de usuario.

Esta vulneravilidad podria ser arreglada si los scrips contaran con un sistema de correccion de errores en el lenguaje de programación.

No solo consiste en el error de printear el nombre de usuario, en algunos casos la aplicación puede dar una ruta aunque no llege al nivel del usuario.

Ejemplo de error FPD:
htmlentities() expects parameter 1 to be string, array given in /var/www/aplicacaion.php on line 14

Inyección sesión ilegal

es posible a través del cambio del valor de la cookie de sesión a un carácter no válido, o no permitido.
Hay muchos tipos de injeccion que se traducirá en el input de la aplicación, pero la más común, es usar caracteres nulos.
Para inyectar una cookie PHPSESSID, la inyección JavaScript a través de la barra de URL:

javascript: void (document. cookie = "PHPSESSID =");


PREVENCIÓN

Desactivar la pantalla de mensajes de error (esto se hace en los siguientes archivos)
*.php.ini: display_errors = 'off'
Apache, httpd.conf: php_flag display_errors off
En el script directamente: ini_set('display_errors', false);
Conclusión

Es un error comun pero es muy raro que sea un factor importante a la hora de llevar un ataque con éxito o fallido, pero si puedellegar a serlo, normalmente se usa para reunir informacion sobre un sitio y usarlo como si fuese una especie de comodin para deducir otras cosas.

Es muy facil de prevenir y es un riesgo innecesario que suelen correr muchas aplicaciones


Este es un claro ejemplo de Full Pach Disclosure

La url original era:
http://www.___________.net/index.php?file=search.php

pero al probar si tenia la vulnerabilidad LFI:
http://www.___________.net/index.php?file=./index.php

me salio un Full Pach Disclosure!!
Wireshok

No hay comentarios:

Publicar un comentario