L'iniezione sql booleana è utile quando il server non restituisce alcuna informazione, come spesso accade. Se è possibile determinare che la risposta è diversa in base al fatto che l'istruzione sql restituisce true o false, ci sono modi per ottenere le informazioni dopo anche se il server non le restituisce.
Ad esempio, se un campo password è vulnerabile a SQL con avvio booleano e si digita la password corretta, allora 'E 1 = 1 - su server sql, si verrà registrati. Se si fa la stessa cosa con 1 = 2, dirà la password non valida.
Se provi a mettere un'istruzione select in quel vettore di attacco, non otterrai nulla indietro, semplicemente non ti farà entrare.
È qui che è utile l'iniezione sql basata su booleana. Puoi creare un vettore di attacco per dire
Pseudocodice Sql:
E (il primo carattere della prima colonna nel database ha un valore ASCII superiore a 25)
Se ti accede, puoi dire, è maggiore di 55, e così via, finché non ottieni il personaggio. Puoi quindi fare la stessa cosa con il secondo carattere, fino a ottenere il nome completo della colonna.
Non posso cimentarmi con ogni tecnica ma ci sono un sacco di risorse là fuori. Penso che il modo migliore per addestrare è quello di gettare qualcosa che è vulnerabile. Quindi eseguire sqlmqp e proxy del traffico attraverso la suite di burp o qualcosa del genere. Quindi puoi vedere esattamente cosa sta facendo lo strumento.