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.

Si vamos probando todos los caracteres llegamos a:

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

Obtenemos el nombre de un usuario 'admin':

Vamos a por la contraseña:

