jueves, 27 de mayo de 2010

Blind SQL injection

Bueno otra vez por aqui, ahora les traigo un tutorial que he creado
sobre el Blind SQL injection, un metodo muy poco difamado, y que yo
casi siempre lo utilizo y es el que da mejores resultados, hay muy pocos
tutoriales de Blind SQL injection por la red, y además en español.


Espero que os guste:


¿Qué es el Blind SQL?



- El blind SQL es una inyección que hacemos consultas solo con TRUE o FALSE
y nos dará los resultados.


¿Donde puede buscar algún dork de Blind SQL injection?


Pues, es basicamente un dork igual que el de SQL injection..


- Podemos utilizar uno como: noticias.php?id=
busquedas.php?id=



¿Como saber si la web es vulnerable?



- Para saber si la web es vulnerable deberemos de colocar y saber si es TRUE o FALSE


tenemos la web ahora agregamos el valor "1=1" despues del numero.



Código:

?idnot=25 and 1=1



De momento no estamos agregando un valor FALSE por que el 1=1 es un valor TRUE por

entonces la web no debe de mostrar ningún cambio y debe de salir igual que al principio.



Ahora probaremos si la web es vulnerable, por que le agregaremos un valor FALSE

La web se quedaría asín:



Código:

?idnot=25 and 1=2



Si al pulsarle intro la web se sigue cargando igual significa que acepta el valor FALSE

por lo tanto la web es vulnerable.


AHora después de saber si la web es vulnerable añadiendole "1=2" deberemos de saber su

versión de Mysql, debemos de saber que hay dos tipos de versiones la versión MYSQL "4" y

la versión MYSQL "5"


Pondriamos esto:



Código:

?idnot=25 and substring(@@version,1,1)=4



Para la versión "4"


Si la web se sigue mostrando igual nos quedamos hay, por que sabemos que es esa la

versión MYSQL.


Y si nos da algun error o texto o algo raro, cambiamos el numero "4" por el "5" para

probar la versión "5"


Ahora como si fuera SQL injection deberemos de averiguar las tablas que hay:



Código:

?idnot=25 and (select+1+from+admin+limit+0,1)=1


Ahora si la tabla admin funciona, es que es TRUE entonces nos quedaremos hay estancados.


Ahora probaremos un nombre de una columna a ver si existe, si existe somos dioses.

Código:

?idnot=25 and (select substring(concat(1,password),1,1)



Si la columna password no existe nos dará un error, y debemos probar con otra..

como contraseña, pass, etc..


Bueno, ya luego tocaría extraer los datos de los usuarios y pass, pero como ya

sabeis extraer los datos por que sabeis SQL, no hace falta explicarlo, y hasta

aquí todo.


Espero que os haya gustado a todos.


Un saludo! :drinking:


SkillmaX

No hay comentarios:

Publicar un comentario