Problemas sql injection

Iniciado por fede_cp, 1 Julio 2009, 22:34 PM

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

fede_cp

buen estaba haciendo una sql injection y se me presento el siguiente problema:

busco el nombre de tablas y el nombre va separado en guiones por ejemplo: sql-inection-ejemplo y despues sigo buscando tablas y si por ejemplo tiene una sola palabra entonces va asi: --ejemplo y si tiene dos palabras va : -sql-injection

ahora cuando quiero seleccionar la tabla para buscar las columnas no se que ascii poner, por ejemplo para --ejemplo,tendria que poner:

-1 union all select 1,column_name,1,2,5,6,8,9 from information_schema.columns where table_name = char(0150,0150,101,106,101,109,112,108,111) and column_name
like char(37,97,37)

donde los 0150 son los guiones, pero ahora hay algo mal ahi, no me tira error sino que no me aparece nada y si le pongo otros caracteres al nombre de la table tmapoco me aparece ningun error.

quiero saber que es lo que estoy haciendo mal


un saludo
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

fede_cp

Bueno hay algunos datos mas, donde se imprimen los datos hay fechas...ahora tiene todo un poco mas de logica

osea que donde se imprimen los datos noramlmente irian mensajes tipo: 16-23-23 es por eso que los datos salen ejemplo-sql, que caracter sera lo que separa, supongo que espacios


adios
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

MagnoBalt

Hola como va fede_cp. La inyeccion con decimal esta mal.
1) El guion (-) en decimal es "45", no es es 0150 como pones vos.
2) Por que mejor no sacas todas las columnas de esa tabla con group_concat y listo.
ejemplo

-1 union all select 1,group_concat(column_name),1,2,5,6,8,9 from information_schema.columns where table_name = char(45,45,101,106,101,109,112,108,111)

eso te mostrara todas las columans de la tabla --ejemplo

Saludos. Espero te sirva

fede_cp

Gracias magno pero, el problema no era ese sino que donde iba la fecha aceptaba máximo 6 caracteres ejemplo 12-34-5678, entonces no terminaba el nombre de la tabla y encima salian las palabras desordenadas

lo que hice y fue lo mas lógico es cambiar el lugar donde se imprimen los datos y listo. muchas gracias por la ayuda

PD: Ya habia probado con 45, pero tenía las magic quotes en on asique no necesite el ASCII, igualmente gracias


adios
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

WHK

te iba a escribir lo mismo que dijo magnobalt pero es tarde  :P char(45)

Como te restringe la cantidad de carácteres no queda otra que verificar si tiene alguna otra variable vulnerable ya que si la dejó pasar en una fecha significa que el programador pudo haber cometido el mismo error en otras variables. Si tambien tienes limites de carácteres pero por lo menos alcanzas a escribir algo poco puedes intentar un load_file() y cargar la query desde un txt remoto que en este caso puede estar en tu localhost.

fede_cp

jeje pero WHK, el programador cometió el error en todos los codes jajaja, era como tener un libro de datos "secretos" al alcanze de la mano

ejje
un saludo y gracias por la ayuda
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!