Sì, è un'iniezione perché stai inserendo il tuo codice nel codice SQL esistente.
Ad esempio. Un modo comune per registrare un utente utilizzando php e SQL è simile a questo:
$sql = "SELECT * FROM users WHERE username = '" . $POST['username'] . "' AND password = '" . $POST['password'] . "';"
Le variabili $ POST ['username'] e $ POST ['password'] che l'utente inserisce nei campi di login. Se l'utente ha inserito quanto segue.
' or 1 == 1 ---
L'SQL risultante che viene eseguito ha il seguente aspetto:
SELECT * FROM users WHERE username = '' or 1 == 1 --- AND password = '';
Si noti che tutto ciò che segue "---" è un commento e ignorato. Quindi SQL cerca di trovare un nome utente che corrisponda a null o 1 == 1. Poiché 1 è sempre uguale a 1, SQL restituirà true e registrerà l'utente.
Si chiama iniezione perché l'utente sta iniettando il proprio codice nel codice scritto dallo sviluppatore.