Ejecutando código mediante LFI

Continuando un poco más con el tema de LFI que introdujimos ayer, vamos a ver ahora como es posible aprovechar esta vulnerabilidad para ejecutar código en el servidor donde se aloja la página vulnerable.

Para hacer esto vamos a insertar código en una imagen que subiremos al servidor mediante los mecanismos legítimos que nos ofrece la página web y después procederemos a ejecutarlo aprovechando la vulnerabilidad LFI comentada ayer.

Pero vamos a entrar en materia.

Lo primero será hacernos una imagen con el código que queremos ejecutar. Para este caso, la imagen será cualquiera que os guste y tenga formato de avatar (algo en .jpeg de pequeño tamaño) y el código de prueba será el siguiente:

<?php

phpinfo();

?>

El segundo paso será incrustarlo en una imagen. Existe varios programas que hacen esto, tanto para Windows como para Linux, pero para el caso yo voy a utilizar una herramienta básica que viene en la consola de Linux, “cat”. Utilizaremos el comando como se especifica a continuación:

cat codigoPhp.txt >> imagen.jpg

Para comprobar que todo ha ido bien, podéis hacer un cat de la imagen y veréis el código incrustado al final de esta.

Ahora procederemos a subir la imagen a la página afectada, por ejemplo, en el caso de un foro la subiremos como avatar, en el caso de otro tipo de páginas pues como parte de un mensaje o como se permita. Hoy en día muchas páginas permiten la subida de imágenes.

Finalmente el último paso es utilizar la vulnerabilidad para invocar este fichero, generalmente situado en “img/” o “images/” o similares y ver que pasa. Si tenemos éxito podremos observar la información sobre PHP de dicho servidor.

Una posible solución a esto es la siguiente (Sacada del manual de php.net):

$path = basename($page, 'php') . '.php';

if(file_exists($path))

     include $path;

Nos vemos.

Ejecutando código mediante LFI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.