Voglio fare una demo per una pagina di accesso che è vulnerabile all'iniezione SQL per scopi di formazione. Ho già provato a crearne uno usando PHP e MySQL. Ho commentato il risanamento del codice per rendere la pagina vulnerabile.
Il codice della pagina di accesso è questo:
//step 1a: sanitise and store data into vars (storing encrypted password)
//$usr = mysqli_real_escape_string($dbc, htmlentities($_POST['u_name']));
//$psw = SHA1($_POST['u_pass']) ; //using SHA1() to encrypt passwords
$usr = $_POST['u_name'];
$psw = $_POST['u_pass'] ;
//step2: create query to check if username and password match
$q = "SELECT * FROM users WHERE userName='$usr' AND password='$psw' ";
//step3: run the query and store result
$res = mysqli_query($dbc, $q);
Quindi, ho cercato di inserirlo nei campi nome utente e password:
' or '1' = '1
Tuttavia, la pagina web mi dice che il nome utente e la password sono sbagliati. Come posso far funzionare SQL injection?