[SQL INJECTION] ¿Me ayudas en un reto? (Abierto)

Iniciado por ZaPa, 15 Marzo 2010, 00:35 AM

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

ZaPa

Hola a todos.

¿Que tal?

Aver si me pueden hechar una mano.

Este fin de semana, he estado prácticando en la web de un amigo (que hizó de prueba, una tienda online con asp un poco cutre) el tema de sql injection.

El caso es qué aposté con el una cenita si conseguia encontrar/explotar algún fallo de seguridad en su página web que él recientemente habia hecho.

El caso es que he encontrado un fallo de seguridad con lo que se puede jugar con sql injection, el problema es que, no consigo hacer todo lo que quiero...

La sql injection está aqui:

http://www.paginaweb.com/cgi-bin/datos.asp?user=46&id='Select * from productos.ref--'


Detrás de la variable id= puedo jugar con sql injection, pero no consigo, por ejemplo, hacer un insert....:


http://www.paginaweb.com/cgi-bin/datos.asp?user=46&id='Select * from productos.ref--'

Al hacer esto por ejemplo (y con otras muchas más consultas) el servidor sql me contesta lo siguiente:


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

[Microsoft][ODBC SQL Server Driver][SQL Server]Error al convertir el tipo de datos varchar a float.

/cgi-bin/datos.asp, línea 25


Dice que no puede convertir datos de varchar a float... pero... ¿que datos?
Si solamente le estoy diciendo que muestre datos..

El caso es que...con (Select Count(*)...) si pudé adivinar los campos que tenia dicha tabla, ya que jugando con > & < pudé dar con los items disponbiles en la tabla productos, pero poco más..

¿Alguna idea?

Un saludo.
Muchas gracias.

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

ZaPa

Hola tooRllehS@xelA y muchisimas gracias por tu respuesta...


Entonces.... por donde estoy intentando hacer sql injection no puedo hacer más cosas?

¿No podria solucionar el error que me esta dando y asi conseguir info?


Un saludo.

tragantras

es precisamente con los errores como se consigue la información, la técnica se denomina "técnica del error".

mirate el documento que te puso shellroot
Colaboraciones:
1 2

ZaPa

Hola de nuevo y gracias a todos por vuestro interes y respuestas.

Si ya sé que con esta técnica la información se consigue de los errores pero.....si necesito conseguir algun dato de alguna tabla, primero debo de saber como se llama esa tabla,cierto??

El problema es ese, que no puedo visualizar las tablas o ver que tablas ahi. ¿No podria hacerlo?

¿Tendria que ir probando hasta acertar con el nombre de la tabla donde este el pass de administrador?


Un saludo.
Muchas gracias.

tragantras

al inyectar esto:    ' HAVING 1=1-- teoricamente te suelta la tabla que está usando, y a partir de ahi vas obteniendo el resto, mirate el documento que ahi aparece detallado, o si no busca por google... o si no, postea la web pero adivinar no se me da bien xD

un saludo :)
Colaboraciones:
1 2

ZaPa

Hola de nuevo y gracias por vuestras respuestas de verdad :D .
El problema es que al insertar la sentencia "HAVING" me da problemas de sintáxis...

Por ej:

variable=38715333 AND HAVING 1=1--

(38715333) Representa la referencia de un producto en la base de datos.

Al insertarle eso que introdujé anteriormente, me suelta esto:


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

[Microsoft][ODBC SQL Server Driver][SQL Server]Sintaxis incorrecta cerca de la palabra clave 'HAVING'.


Tambien he probado cerrando primero la comilla simple, osea quedaria asi:

variable=38715333 AND 'HAVING 1=1--

Pero ahi me suelta lo siguiente (avisandome de que una comilla simple no ha sido cerrada)

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

[Microsoft][ODBC SQL Server Driver][SQL Server]Comilla no cerrada antes de la cadena de caracteres 'HAVING 1=1-- ORDER BY Productos.ref'.

/cgi-bin/datos.asp, línea 25


Tambien he probado esscribiendo la sentencia having de esta forma:

variable=38715333 AND 'HAVING 1=1--'

Y entonces la base de datos me responde lo siguiente:


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

[Microsoft][ODBC SQL Server Driver][SQL Server]Comilla no cerrada antes de la cadena de caracteres 'HAVING 1=1-- ORDER BY Productos.ref'.

/cgi-bin/datos.asp, línea 25



Pero bueno....estas 2 segundas opciones son las combinaciones que he hecho yo para probar si la base de datos no se quejaba.

Lo que no entiendo es porque se queja con "Problema de Sintáxis" En la 1º inyección que he posteado.

¿Que falla aquí?


Un saludo y muchisimas gracias por su atención y ayuda.

Shell Root

xD, pero te tiro lo que necesitas saber!
Cita de: ZaPa en 17 Marzo 2010, 17:38 PM[Microsoft][ODBC SQL Server Driver][SQL Server]... Productos.ref'.
Your Pwned!, debes de leerte algo de esto, antes de intentar hacerlo!
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

ZaPa

Hola.

No te entendí.

¿Que es lo que debo leerme?

Muchas gracias man.

Shell Root

Mira, ese tipo de inyecciones son de las más dificiles, en ocasiones encuentras 1 y de un momento a otro despues de llevar más de 20 min sacando tablas y campos, no podes seguir. xD;

Para que entiendas mejor, miraté este Tutorial de The X-C3LL.
http://foro.portalhacker.net/index.php/topic,65891.0.html
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.