elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  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 4 Ir Abajo Respuesta Imprimir
Autor Tema: Php injection  (Leído 13,681 veces)
tragantras


Desconectado Desconectado

Mensajes: 465


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

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 am por tragantras » En línea

Colaboraciones:
1 2
Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



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

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 Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


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

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

tragantras


Desconectado Desconectado

Mensajes: 465


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

  • 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 pm por tragantras » En línea

Colaboraciones:
1 2
braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


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

  • 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: 465


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

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: 896


Imagen recursiva


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

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: 465


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

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
  1. 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 pm por tragantras » En línea

Colaboraciones:
1 2
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


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

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

tragantras


Desconectado Desconectado

Mensajes: 465


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

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
Páginas: [1] 2 3 4 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines