La inyección de SQL basada en Boolean es útil cuando el servidor no le devuelve ninguna información, lo que suele ser el caso. Si puede determinar que la respuesta es diferente en función de si la declaración de SQL devuelve verdadero o falso, hay formas de obtener la información que busca después, incluso si el servidor no se la devuelve.
Por ejemplo, si un campo de contraseña es vulnerable a la inyección de SQL basado en Boolean y escribe la contraseña correcta, entonces 'Y 1 = 1 - en el servidor de SQL, iniciará sesión. Si hace lo mismo con 1 = 2, dirá una contraseña inválida.
Si intentas poner una declaración de selección en ese vector de ataque, no obtendrás nada, simplemente no te dejará entrar.
Aquí es donde la inyección de SQL basada en Boolean es útil. Puedes crear un vector de ataque para decir
Pseudocódigo Sql:
Y (el primer carácter de la primera columna en la base de datos tiene un valor de ascii mayor que 25)
Si te inicia sesión, puedes decir si es mayor que 55, y así sucesivamente, hasta que obtengas el carácter. Luego puede hacer lo mismo con el segundo carácter, hasta que obtenga el nombre completo de la columna.
No puedo utilizar todas las técnicas, pero hay muchos recursos disponibles. Creo que la mejor manera de entrenar es hacer girar algo vulnerable. Luego ejecute sqlmqp y distribuya el tráfico a través de burp suite o algo. Entonces puedes ver exactamente lo que hace la herramienta.