¿Todas las inyecciones de SQL son explotables a través de ataques basados en el tiempo?

1

Supongamos que estoy fuzzing para inyecciones de SQL, en lugar de probar todos los otros enfoques (basado en error, basado en booleano, basado en la unión, basado en la pila), le diría a mi motor que solo busque el descubrimiento basado en el tiempo ? Por ejemplo: sqlmap -u URL --batch --technique = T

Tengo la impresión de que, en función del tiempo, encontraría todo SQLi (a menos que el servidor filtre específicamente SLEEP o WAITFOR pero no AND lo que realmente no sucedería) y cuando se encuentre, se debe intentar encontrar un método de extracción más rápido (busque un booleano basado en que ya se ha visto que es inyectable basado en el tiempo). O que los otros métodos se prueben primero porque son más rápidos de probar.

    
pregunta whatever489 14.03.2017 - 20:20
fuente

1 respuesta

2

Definitivamente hay excepciones. Mientras que el sueño puede, por ejemplo, trabajar para inyecciones en order by , no funciona fácilmente en limit :

select * from pages limit 1,sleep(1); // doesn't work

Obviamente, usted puede aún puede formular una inyección que contenga el modo de suspensión, pero supongo que sqlmap no lo tiene como predeterminado al escanear.

También se perderían las inyecciones en las que el servidor filtra todas las palabras clave de SQL pero todavía permite entradas como ' -- - .

Como se señaló en los comentarios, tampoco funcionará si el DBMS no admite una función de sueño o si está utilizando la función incorrecta.

También será bastante lento (lo que puede o no estar bien) y propenso a errores (a veces las solicitudes solo tardan un tiempo, especialmente si está enviando mucho a la vez).

    
respondido por el tim 14.03.2017 - 21:06
fuente

Lea otras preguntas en las etiquetas