Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: krispin en 28 Enero 2005, 22:24 pm



Título: una de sql-injection!!
Publicado por: krispin en 28 Enero 2005, 22:24 pm
Buenax!!!
tengo una preguntilla sobre sql injection.
Hay veces en las que aces una injeccion, y te da el error:
"The text, ntext, or image data type cannot be selected as DISTINCT."

este error se puede salvar?a que se debe? por lo que e leido ademas,
que salga lo de distinct no kiere decir que se haya utilizado distinct.
en la page de microsoft la respuesta es:
"If you have a view that includes a text field, and you reference the text field in a SELECT clause, then you are not allowed to use SELECT DISTINCT. As a result, the query optimizer cannot eliminate certain redundant joins. A solution is to use a nested query on two interface-based views. The inner query uses DISTINCT and includes IntID in the SELECT clause, but does not reference the text field. This causes the inner query to reference a presumably smaller number (specifically, the IntID), which then joins with the interface-based view that contains the text field."

entonces existe alguna sentencia que kuele??????
graciassssss!!


Título: Re: una de sql-injection!!
Publicado por: Ambolius en 29 Enero 2005, 03:43 am
El SELECT DISTINCT en SQL sirve para que en la lista de filas que queramos sacar no aparezcan repetidos. Es decir que si ponemos algo asi como:

SELECT DISTINCT id_user,pass FROM users

y en existen dos usuarios con un id_user 1 (Por ejemplo equivalente al admin) solo nos mostrara 1.

El error te apareceria en esta sentencia si la columna id_user no aceptara el modificador DISTINCT, que es basicamente lo que te vienen a decir los de Microsoft.

Citar
que salga lo de distinct no kiere decir que se haya utilizado distinct.

Si aparece ese error, es porque se ha usado en la consulta el DISTINCT, sino no saldria eso.


Título: Re: una de sql-injection!!
Publicado por: krispin en 29 Enero 2005, 05:22 am
Gracias por kontestar, pero no mas dixo nada nuevo.
Por lo que veo, no tienes mucha idea de sql, sin utilizar distinct puede darte el error que komente antes.
ya encontre la solucion.
ami me salia al acer un union ese error. con poner union all
es suficiente, cuela.
de todas formas, gracias por contestar.
txao