We gebruiken het volgende programma.
PROGRAM login:
STRING loginNaam [9]
STRING wachtwoord [9]
BOOLEAN ingelogd = 0; // 0 betekent false: niet ingelogd, en al het andere betekent true: wel ingelogd
READ (loginNaam, "Wat is je loginnaam?")
READ (wachtwoord, "Wat is je wachtwoord?")
IF (checkWachtwoord (loginNaam, wachtwoord) == TRUE) THEN
ingelogd = 1
ENDIF
IF (ingelogd) THEN
// succesvol ingelogd, naar het startscherm
ELSE
// foutief login en/of wachtwoord, terug naar het inlogscherm
ENDIF
END PROGRAM
Na het starten van het programma wordt gevraagd om de login en het wachtwoord van de gebruiker. Je weet een loginnaam: merijn. Maar je weet het bijbehorende wachtwoord niet. Neem aan dat dit programma gevoelig is voor een buffer overflow. Neem ook aan dat iedere waarde ongelijk aan 0 voor een boolean wordt geïnterpreteerd als true.
Wat zou je kunnen invullen bij het wachtwoord om te zorgen dat je toch kunt inloggen?
Het hierboven beschreven programma kun je hier uitvoeren. Lukt het jou om met een buffer overflow in te loggen?
Voer je gebruikersnaam en wachtwoord in en klik op inloggen.