martes 20 de octubre de 2009

PenTest: LFI por Require

Bueno pues diganme quien no ha usado la funcion require() pues dejenme contarles que a traves de ella se puede explotar un LFI de la siguiente mmanera:

require("/2009/10/includes/index.html".$file);


ese es un tipico uso del require por el cual usando un path trasversal despues del file= no permitiria ganar acceso a ficheros como el passwd.. forma de explotación:

http://vuln.com/index.php?file=../../../etc/passwd


Si dentro del code incluyeramos mas especificaciones de los tipo de archivos y rutas pues podríamos usar el apreciado nullbyte para bypassear

require("/2009/10/includes/index.html".$_COOKIE['data']."/2009/10/.html");


Ahora digamos que tenemos ya para explotar con un lfi podriamos hacer lo siguiente:

document.cookie = "data=../../../../../etc/passwd";

Con eso podríamos mandar en un msgbox los datos del archivo convocado por la funcion document.cookie previamente ejecutada con el javascript...



Una forma de como evitar esto sería agregando un str_replace() previamente al require() obviamente ustedes elijirán que filtran o que no filtran

Espero que les haya gustado el tutorial...


Saludos
Dr.White