Duda en sql inyection

Iniciado por 50l3r, 14 Marzo 2010, 13:46 PM

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

50l3r

Veran, tengo una inyeccion tal que asi:

proyectos.php?id=0 union select 1,2,3,4,5,6,7,8,group_concat(column_name),10,11,12 from information_schema.columns where table_name=char(112,117,98,108,105,99,105,100,97,100)

eso como vereis, me saca campos de un tabla, es solo un ejemplo

mi duda, es si puedo, ejecutar otras sentencias que no sean select, quiero decir, insertar, actualizar...etc, no pregunto a nivel de privilegios ya que esos se pueden mirar en user privileges, sino a la manera de ejecutar la sentencia detras del select

¿alguien sabria como?, cuando lo intento me arroja:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';show databases' at line 1

Shell Root

Dedende de:

  • Base de Datos
  • Dende de la sintaxis del Query
  • Depende de las librerias

En MySQL, no podes ejecutar 2 sentencias dentro del mismo Query, es decir, un SELECT y un INSERT, no lo podes hacer.

PD: http://foro.elhacker.net/nivel_web/inyeccion_sql_mysql_update_dentro_de_un_select-t241813.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.

50l3r

ya, de eso estoy enterado, pero no es posible ejecutar una consulta tal que asi:

proyectos.php?id=0;update tabla....

es decir el ";" te cerraria la instruccion anterior para dar paso a otra

se podria realizar?

Shell Root

#3
Cita de: WHK en  5 Noviembre 2009, 23:19 PMAhora, puede que ese sitio web utilize librerías preconstruidas donde si acepte el carácter ";" como separador de querys, en ese caso si podrías hacer un update concatenando ambas querys con ";" pero por defecto no se puede. Lo que hacen la mayoria de las clases prefabricadas es separar todo el string en un solo array dimensional separados por el ";" y luego comienza a procesar query por query.


En MSSQL:
Código (sql) [Seleccionar]
SELECT * FROM dbo.tblArea; SELECT * FROM dbo.tblAutor
Respuesta:
(3 filas afectadas)

(2 filas afectadas)



En MySQL:
Código (sql) [Seleccionar]
SELECT * FROM tblArea; SELECT * FROM tblAutor
Respuesta:
Mostrando registros 0 - 0 (~11 total, La consulta tardó 0.0005 seg)
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

50l3r