Host Header Injection — Abus de l'en-tête Host
★★★★★
Principe
Quand l'application fait confiance à l'en-tête Host (ou X-Forwarded-Host) fourni par le client pour construire des URLs absolues, un attaquant peut détourner des liens de reset de mot de passe, empoisonner le cache, ou contourner certains contrôles d'accès.
Exploitations courantes
# Empoisonnement de reset password
POST /forgot-password HTTP/1.1
Host: evil.com
# -> le lien de reset pointe vers evil.com avec le token
# Via X-Forwarded-Host quand Host est filtré
GET /reset HTTP/1.1
Host: target.com
X-Forwarded-Host: evil.com Défenses
Configurer une whitelist de domaines (virtual hosts) autorisés au niveau serveur, ignorer X-Forwarded-Host sauf derrière un proxy de confiance, et utiliser une URL de base canonique fixe côté application plutôt que de la dériver du Host.