XUT_ / COURSES / PENETRATION TESTER

Blind SQLI - Time Based

Una SQLi basada en tiempo es muy similar a la de arriba ya que se mandan las mismas peticiones solo que no hay indicador visual que indique si estamos o no en lo correcto, por lo que tenemos que basarnos en el tiempo que tarda en llegar la respuesta. Este retraso en la respuesta la introducimos con el comando SLEEP(), que sólo se ejecutará con un statement exitoso de UNION SELECT.

Para investigar el número de columnas de una tabla usaríamos por ejemplo:

admin123' UNION SELECT SLEEP(5);-- -

Si no hay pausa en la respuesta sabemos que no es esa, por lo que añadimos otra columna:

admin123' UNION SELECT SLEEP(5),2;-- -

Si se produce una espera confirmamos que estamos en lo cierto. Ahora podemos repetir el proceso de la SQLi basada en booleanos añadiendo el método SLEEP().


Práctica

Vamos a ver un ejemplo práctico.


Nivel 4

Llegamos a lo siguiente. Blind SQLI - Time Based

Si vamos probando todos los caracteres llegamos a:

Blind SQLI - Time Based

Obtenemos uno de los nombres de columna y hacemos lo mismo para 'password':

Blind SQLI - Time Based

Obtenemos el nombre de un usuario 'admin':

Blind SQLI - Time Based

Vamos a por la contraseña:

Blind SQLI - Time Based