Tutorial de Local File Inclusion

Autor: | Última modificación: 11 de noviembre de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

Este tutorial de Local File Inclusion está hecho con fines totalmente académicos. La técnica que veremos a continuación debe usarse para hallar fallos de seguridad de manera autorizada en aplicaciones web con el fin de reportarlos. Para aprender en qué consiste y cómo se ejecuta, utilizaremos un entorno legal de práctica de hacking web llamado Damn Vulnerable Web Application (DVWA).

DVWA es una aplicación deliberadamente vulnerable (con niveles de vulnerabilidad ajustables) diseñada de este modo con el objetivo de practicar y entender las principales técnicas de hacking web. En ella, se pueden practicar ciberataques como inyección SQL, cross-site scripting, ataques de fuerza bruta, cross-site request forgery y más.

¿Qué es Local File Inclusion?

A continuación, veremos un tutorial de Local File Inclusion para DVWA. Pero antes, hablaremos brevemente sobre qué es la vulnerabilidad de Local File Inclusion y por qué es un riesgo para las aplicaciones web y sus clientes.

Local File Inclusion es una vulnerabilidad web que le permite a un atacante ejecutar un fichero con código PHP en el navegador de la víctima. Este fallo de seguridad ocurre cuando el código fuente de la aplicación utiliza un input que el usuario puede modificar para ejecutar un archivo con código PHP dentro del navegador.

Para entender mejor en qué consiste y cómo explotar esta vulnerabilidad, continuemos con el tutorial de Local File Inclusion en DVWA.

Tutorial de Local File Inclusion

Preparación

Lo primero que haremos en este ejercicio de hacking web es preparar nuestro entorno web de práctica. Para ello:

  1. Crea una máquina virtual con el sistema operativo para pentesting Kali Linux.
  2. Instala DVWA en tu máquina de Kali Linux.

Ejecución

Una vez tengas preparada tu máquina virtual con Kali Linux y DVWA instalada en ella, abre un navegador web en esta máquina e ingresa en la dirección de DVWA.

localhost/dvwa
Tutorial de Local File Inclusion

🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴

Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en Ciberseguridad por una semana

Inicia sesión con las credenciales por defecto «admin» y «password«.

Tutorial de Local File Inclusion

Después, ve a la pestaña de DVWA Security y escoge la opción «Low«.

Tutorial de Local File Inclusion

Luego, dirígete a la pestaña que dice File Inclusion, donde realizaremos el ataque a esta vulnerabilidad.

Tutorial de Local File Inclusion

En esta página, notaremos que la dirección URL contiene el parámetro «page=include.php«, que podría ser vulnerable, ya que sirve para ejecutar código PHP en el navegador del usuario. Para probar si la vulnerabilidad está presente en la aplicación, probaremos a ejecutar la dirección de cualquier página web por medio de este parámetro, como puedes ver a continuación:

page=http://www.google.com
Tutorial de Local File Inclusion

El resultado nos revela una vulnerabilidad dentro de la aplicación que podríamos utilizar para redirigir el navegador del usuario hacia una página maliciosa y desplegar un ciberataque desde allí.

Otra opción que nos da DVWA al realizar un ataque de Local File Inclusion es encontrar una bandera. Dicha bandera se puede encontrar con el siguiente payload:

http://localhost/dvwa/vulnerabilities/fi/?page=../../hackable/flags/fi.php
Tutorial de Local File Inclusion

Lo que permite este payload es acceder a un fichero llamado «fi.php» que ejecuta un código PHP dentro del navegador. Asimismo, es posible acceder a otros ficheros del sistema, como el «/etc/passwd«, del siguiente modo:

http://localhost/dvwa/vulnerabilities/fi/?page=../../../../../../etc/passwd
Tutorial de Local File Inclusion

Vulnerabilidades similares

Con este tutorial de Local File Inclusion, hemos demostrado en qué consiste la vulnerabilidad. Ahora, hablaremos brevemente sobre en qué se diferencia de otros fallos de seguridad similares, como el Remote File Inclusion y el path traversal.

  • Remote File Inclusion (RFI): a diferencia del LFI, el RFI permite ejecutar código PHP que se encuentra dentro de un fichero almacenado en otro servidor controlado por el atacante. Se considera que puede ser más peligroso, ya que el hacker obtiene más control sobre el contenido del código PHP que se ejecuta en el navegador de la víctima. De este modo, se pueden llevar a cabo operaciones más complejas.
  • Path traversal: permite acceder a un fichero almacenado en el servidor de la aplicación, pero no ejecutar código PHP en el navegador. Al igual que hemos visto en el ejemplo anterior, el path traversal o directory traversal permite imprimir el contenido de cualquier archivo de texto en la pantalla del navegador. De este modo, se puede acceder a contraseñas o nombres de usuarios, entre otros datos.

¿Cómo aprender más?

Ya hemos visto este tutorial de Local File Inclusion en DVWA. Si quieres profundizar y aprender más técnicas de hacking web, en KeepCoding tenemos el curso intensivo ideal para ti. Ingresa a nuestro Ciberseguridad Full Stack Bootcamp y descubre cómo convertirte en un especialista en tan solo 7 meses. Ten clases en vivo con profesores expertos sobre temas como pentesting, recolección de información, criptografía, análisis de malware y mucho más. ¡No sigas esperando y pide ya más información!

¡CONVOCATORIA ABIERTA!

Ciberseguridad

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado