Password reset poisoning: dirottare il link via Host header
Molte app costruiscono l'URL di reset usando l'header Host della richiesta HTTP. Ma quell'header è controllato dal client.
L'attacco
L'attaccante avvia il reset per la vittima con un Host manomesso:
POST /reset HTTP/1.1
Host: evil.com
[email protected]La mail arriva alla vittima ma il link punta a evil.com/reset?token=.... Se la vittima clicca (o il client fa prefetch), il token finisce all'attaccante, che resetta la password.
Difesa
Non fidarti dell'header Host (né di X-Forwarded-Host) per costruire URL: usa un dominio canonico da configurazione. Whitelist degli host validi a livello di web server. Token a uso singolo, scadenza breve, invalidati dopo l'uso.