Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: 50l3r en 14 Marzo 2010, 13:46 pm



Título: Duda en sql inyection
Publicado por: 50l3r en 14 Marzo 2010, 13:46 pm
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


Título: Re: Duda en sql inyection
Publicado por: Shell Root en 14 Marzo 2010, 16:08 pm
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


Título: Re: Duda en sql inyection
Publicado por: 50l3r en 14 Marzo 2010, 16:13 pm
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?


Título: Re: Duda en sql inyection
Publicado por: Shell Root en 14 Marzo 2010, 16:36 pm
Ahora, 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
  1. SELECT * FROM dbo.tblArea; SELECT * FROM dbo.tblAutor
Respuesta:
Código:
(3 filas afectadas)

(2 filas afectadas)

En MySQL:
Código
  1. SELECT * FROM tblArea; SELECT * FROM tblAutor
Respuesta:
Código:
Mostrando registros 0 - 0 (~11 total, La consulta tardó 0.0005 seg)


Título: Re: Duda en sql inyection
Publicado por: 50l3r en 14 Marzo 2010, 18:37 pm
ok cogido  ;D