Buscar

18 marzo 2021

Montando laboratorios (basic LFI)


Hoy traigo una entrada de como explotar un LFI, pero montandonos nuestro propio "laboratorio". Así, por una parte, no tenemos que acceder a ninguna web tipo HTB y, por otra, aprendemos que es lo que ocurre por detrás del ataque.





Si quieres saber como puedes montar este mini laboratorio y aprender a explotar un LFI desde cero, quédate y dale a leer más.









LFI es una vulnerabilidad web en la que un atacante es capaz de leer ficheros del sistema.





Vale, lo primero es lo primero, así que, una vez iniciada la sesión en Kali, vamos a arrancar el servicio de Apache de la siguiente manera:





service apache start
service apache status (si quieres comprobar que está OK)









Una vez levantado el servicio, vamos a /var/www/html y creamos un directorio que se llame LFI.





Accedemos a la nueva ruta, y creamos un fichero con el nombre que queramos (en mi caso culo.php para variar xD), con el siguiente contenido:









Lo siento, no me deja pegar el código WP, así que, os toca escribir xD.





Este código es vulnerable porque la función include de PHP recupera cualquier cosa que le soliciten, por lo tanto, se podría leer un fichero del sistema. Por ejemplo, el conocido passwd, a través de otro ataque muy famoso, el directory traversal (../ o ..\)









Como se ve en la imagen anterior, la forma de hacer una llamada al fichero es con la ? y el file=.





Y esto, es un Local File Inclusion (LFI), es decir, somos capaces de leer ficheros del sistema. Esto puede desembocar en un ataque de RCE (Remote Code Execution o ejecución de comando remoto), pero eso lo veremos en la siguiente entrada.





Solución:





En este ejemplo mostrado, la forma de "sanitizar" el código pasaría por evitar que se pueda hacer una petición al fichero, es decir, sustituir esto:





La imagen tiene un atributo ALT vacío; su nombre de archivo es image-59.png




Por esto:









Des esta forma, ya no hay nada que modificar y no sería vulnerable.









Hay muchas otras formas de evitar un LFI, solo he puesto la más sencilla al problema que teníamos.





Nos vemos en la siguiente.


0 comentarios:

Publicar un comentario