Recentemente sono incappato in un sito abbastanza noto che presenta una vulnerabilità di redirezione automatica aperta e consentiva, con opportuno link, di redirezionare l’utente vittima in qualunque sito scelto dall’attaccante. Al momento non hanno ancora risposto, ma, non avendo ancora trattato l’argomento sul blog, mi sembrava un buon articolo per riprendere con la pubblicazione!
Quasi tutte le applicazioni web hanno funzioni di redirezione verso proprie pagine o altri link in uscita, solitamente filtrati e selezionati da apposite liste. La redirezione non validata consente all’attaccante di poter scegliere un link arbitrario e portare la vittima su un link scelto appositamente (malevolo, scam, di phishing, etc.).
Un redirect classico può essere
http://example.com/example.php?url=http://app.example.com
Questo link, se ben validato, non consentirà all’attaccante di modificarlo e genererà un errore se venisse modificato il parametro url. Una volta cliccato, il link porterà a
http://app.example.com
Nel caso in cui non venga fatto nessun controllo, un attaccante potrebbe creare un link del tipo
http://example.com/example.php?url=http://fakeexample.com
e redirezionare l’utente su un sito creato da lui, magari chiedendo nuovamente l’inserimento della password.
Cliccando sul link la situazione che si crea è abbastanza semplice:
Dopo qualche prova, la soluzione viene da sè
┌─[mrtouch@parrot]─[~]
└──╼ $ echo -n https://facebook.com | md5sum
a023cfbf5f1c39bdf8407f28b60cd134
L’hash non è altro che l**‘hash MD5 dell’url**. Per crearne un altro è bastato eseguire nuovamente il comando, ma con un altro link
┌─[mrtouch@parrot]─[~]
└──╼ $ echo -n https://hacktips.it | md5sum
f2178b1573b1efe6617b7e10ca4d3c6c
Ho omesso l’url della sfida perchè vietato esplicitamente nei termini del sito. Se interessa ritrovarlo, è nella lista delle sfide online stilata tempo fa.
Questa vulnerabilità potrebbe sembrare inutile, ma sebbene non danneggi esplicitamente il sito vittima, colpisce in modo particolare gli utenti e i visitatori dello stesso. Rendere sicura questo tipo di vulnerabilità è a dir poco banale, e per chi vuole approfondire Google e Cwe.Mitre che ne parlano approfinditamente. Per altri payloads consiglio Open-Redirect-Payloads.