Come abbiamo già visto, il secondo livello di Hacker-game può essere risolto con facilità spulciando per bene i sorgenti della pagina web che si ha davanti. Bene, direte voi, nulla di più facile. E invece non è così. Il mondo dell'informatica e della programmazione(come molte altre discipline) è bello perchè vario! Vario è da intendersi come il raggiungimento di uno scopo usando anche strade diverse da quelle convenzionalmente riconosciute. Proprio su questo presupposto nasce l'hacking.
Ai lettori più attenti sarà sicuramente saltato agli occhi come nelle tre righe di codice che ho evidenziato nel precedente post ci fossero ben due soluzioni alla risoluzione del livello e non una come ho fatto notare.
Ripescando la parte di nostro interesse avevamo quanto segue:
function check(user, pass){
if (user == "login" && pass == "segreto")
parent.location.href = "/daniele/default.asp?lev=accidempoli";
else alert("User o password non corretti!");
}
La nostra attenzione era stata catturata direttamente dalle voci user e pass ma c'è una cosa ancora più interessante. In questa funzione check si vede che se il confronto tra il contenuto delle due caselle presenti sulla pagina è uguale alle parole segrete decise dall'autore (ovvero le stringhe "login" e "pass") allora si ottiene il passaggio di una stringa che altri non è che la pagina alla quale ci dobbiamo recare, ovvero il livello successivo!
Facendo attenzione infatti si legge:
parent.location.href = "/daniele/default.asp?lev=accidempoli";
Ottimo! Quindi chi ci vieta di prelevare il path che c'è dopo parent.location.href e di unirlo in cascata al link radice del sito e di accedere direttamente come abbiamo già fatto per il primo livello? Pertanto potete andare nella barra degli indirizzi del vostro browser e digitare:
www.telerie-effegibi.it/daniele/default.asp?lev=accidempoli
Buon hacking a tutti!