Hoy vamos a hablar en concreto de un tipo de ataque contra servidores web, en concreto vamos a hablar de LFI (Local File Inclusion).
El objetivo del ataque es visualizar ficheros localizados localmente en dicho servidor. Por ejemplo, el “/etc/passwd, o ficheros similares que puedan ser de nuestro interés para profundizar en otro tipo de ataques.
El fallo se produce porque en el código de la página web que vamos a utilizar como trampolín para el ataque aparece algo similar a esto:
pagina.php
<?php
$pagina = $_GET(‘pagina’);
include($pagina);
?>
Como se puede ver el código recibe como parámetro a través de la URL un nombre de página e incluye esta para su visualización. Añadir que también se puede hacer esto a través de parámetros recibidos por peticiones POST, pero por no liar al lector, en este artículo solo veremos peticiones recibidas por GET (más adelante se escribirá el de peticiones POST).
Una vez que hemos descubierto que una página tiene un posible LFI, vamos a proceder a probarlo a ver si tenemos éxito.
En primer lugar tenemos la petición original, que sería de la siguiente forma:
http://www.example.com?pagina=paginaParaInclude
Para poder sacar provecho de esto la petición que nosotros vamos a inyectar será del siguiente tipo:
http://www.example.com?pagina=../conf/httpd.conf
Con esto estaremos solicitando que se muestre el fichero de configuración del servidor.
Ahora con un par de pruebas podremos llegar a ver ficheros mucho más interesantes alojados en servidor.
Espero que os sirva para practicar un poquito y hacer un poco más seguros vuestro código o vuestros servidores. Como siempre, os animo a preguntar dudas o hacer comentarios. Nos vemos.