Stap 7: Kappen!
Zoals we in de vorige stap hebt geleerd test OR `id` = 2 OR 1 = ' is onze achterdeur. Dus wanneer u de volgende e-mail invoert, kunt u inloggen als elke gebruiker die u wilt. Voor de gebruiker met id 1:
SELECT * FROM `user` WHERE `email` = 'test OR `id` = 1 OR 1 = '' AND `password` = '098f6bcd4621d373cade4e832627b4f6'
Voor de gebruiker met id 2:
mysql_real_escape_string($_POST['email'])
Zoals u zien kunt, is de gebruikte mysql query als volgt:
$_POST['email']
Aangezien er geen haakjes in de query, kunnen we de tekenreeks stoppen net door een ' in de e-mail. Na de ' we de query zelf kunt wijzigen. Zo voegen we gewoon een andere "Of"-voorwaarde die betrekking op de gebruikers-id heeft. Dit maakt de e-mailadres en het wachtwoord achterhaald omdat mysql de conditie controleren stopt zodra één "OR"-voorwaarde voldaan wordt. Dus als er een gebruiker met de id "1" in onze database, zijn we ingelogd.