hacktricks/pentesting-web/email-injections.md
2024-02-11 02:07:06 +00:00

11 KiB

E-posinjeksies


Gebruik Trickest om maklik en outomaties werkstrome te bou wat aangedryf word deur die wêreld se mees gevorderde gemeenskapsinstrumente.
Kry vandag toegang:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Injecteer in gestuurde e-pos

Injecteer Cc en Bcc na die sender-argument

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

Die boodskap sal na die ontvanger en ontvanger1 rekeninge gestuur word.

Injecteer argument

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

Die boodskap sal na die oorspronklike ontvanger en die aanvaller se rekening gestuur word.

Injecteer Onderwerp argument

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

Die vals onderwerp sal by die oorspronklike onderwerp gevoeg word en in sommige gevalle sal dit dit vervang. Dit hang af van die gedrag van die e-posdiens.

Verander die liggaam van die boodskap

Spuit 'n twee-lynvoer in, skryf dan jou boodskap om die liggaam van die boodskap te verander.

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

Uitbuiting van die PHP mail() funksie

Die PHP mail() funksie is 'n baie nuttige funksie wat gebruik word om e-posse te stuur vanaf 'n webwerf. Dit kan egter ook misbruik word deur 'n aanvaller om e-posinjeksie-aanvalle uit te voer.

'n E-posinjeksie-aanval vind plaas wanneer 'n aanvaller kwaadwillige data invoer in die veld vir die ontvanger, onderwerp of boodskap van die e-pos. Hierdie data kan dan gebruik word om skadelike aksies uit te voer, soos die stuur van spam, die uitvoer van kwaadwillige kode of die verkryging van gevoelige inligting.

Om 'n e-posinjeksie-aanval uit te voer, moet 'n aanvaller die invoerveld manipuleer om spesiale karakters te bevat, soos enkele aanhalingstekens, dubbele aanhalingstekens of semikolons. Hierdie karakters kan die e-posinjeksie-aanval moontlik maak deur die invoer van die aanvaller te meng met die e-posseine wat deur die mail() funksie gebruik word.

Om 'n suksesvolle e-posinjeksie-aanval uit te voer, moet 'n aanvaller die volgende stappe volg:

  1. Identifiseer die invoerveld wat gebruik word vir die ontvanger, onderwerp of boodskap van die e-pos.
  2. Manipuleer die invoerveld deur spesiale karakters in te voer.
  3. Voeg die kwaadwillige data in wat gebruik sal word vir die e-posinjeksie-aanval.
  4. Stuur die gemanipuleerde e-pos deur die mail() funksie.

Om e-posinjeksie te voorkom, moet ontwikkelaars die invoer van gebruikers behoorlik valideer en ontsmet. Dit kan gedoen word deur die gebruik van funksies soos filter_var() of addslashes() om spesiale karakters te ontsmet.

Dit is belangrik vir webontwikkelaars en beveiligingspersoneel om bewus te wees van die moontlikheid van e-posinjeksie-aanvalle en om die nodige maatreëls te tref om dit te voorkom.

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

Die 5de parameter ($additional_parameters)

Hierdie gedeelte is gebaseer op hoe om hierdie parameter te misbruik as 'n aanvaller dit beheer.

Hierdie parameter sal by die bevellyn gevoeg word wat PHP gebruik om die binêre sendmail aan te roep. Dit sal egter gesaniteer word met die funksie escapeshellcmd($additional_parameters).

'n Aanvaller kan ekstra parameters vir sendmail inspuit in hierdie geval.

Verskille in die implementering van /usr/sbin/sendmail

Die sendmail-koppelvlak word voorsien deur die MTA-e-pos sagteware (Sendmail, Postfix, Exim ens.) wat op die stelsel geïnstalleer is. Alhoewel die basiese funksionaliteit (soos -t -i -f parameters) dieselfde bly vir verenigbaarheidsredes, varieer ander funksies en parameters aansienlik afhangende van die geïnstalleerde MTA.

Hier is 'n paar voorbeelde van verskillende manbladsye van die sendmail-opdrag/koppelvlak:

Afhanklik van die oorsprong van die sendmail-binêre het verskillende opsies ontdek om dit te misbruik en lêers te lek of selfs arbitrêre opdragte uit te voer. Kyk hoe in https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html

Inspuiting in die e-posnaam

Geïgnoreerde dele van 'n e-pos

Die simbole: +, - en {} kan in seldsame gevalle gebruik word vir merking en geïgnoreer word deur die meeste e-posbedieners

Kommentaar tussen hakies () aan die begin of die einde sal ook geïgnoreer word

Whitelist-omseiling

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

Aanhalingstekens

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

IP-adresse

Jy kan ook IP-adresse gebruik as domeinname tussen vierkante hakies:

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

Ander kwesbaarhede

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

Derde party SSO

XSS

Sommige dienste soos github of salesforce laat jou toe om 'n e-posadres met XSS-payloads daarop te skep. As jy hierdie verskaffers kan gebruik om op ander dienste in te teken en hierdie dienste die e-pos nie korrek saniteer nie, kan jy XSS veroorsaak.

Rekening-oorgawe

As 'n SSO-diens jou toelaat om 'n rekening te skep sonder om die opgegeven e-posadres te verifieer (soos salesforce) en dan kan jy daardie rekening gebruik om in 'n ander diens in te teken wat vertrou op salesforce, kan jy enige rekening toegang verkry.
Let daarop dat salesforce aandui of die opgegeven e-pos geverifieer is of nie, maar die aansoek moet hierdie inligting in ag neem.

Reply-To

Jy kan 'n e-pos stuur met From: company.com en Replay-To: attacker.com en as enige outomatiese antwoord gestuur word as gevolg van die e-pos wat van 'n interne adres af gestuur is, kan die aanvaller moontlik daardie antwoord ontvang.

Harde stuiterkoers

Sekere dienste, soos AWS, implementeer 'n drempel wat bekend staan as die Harde stuiterkoers, tipies ingestel op 10%. Dit is 'n kritieke metriek, veral vir e-posafleweringsdienste. Wanneer hierdie koers oorskry word, kan die diens, soos AWS se e-posdiens, opgeskort of geblokkeer word.

'n Harde stuiter verwys na 'n e-pos wat aan die afsender terugbesorg is omdat die ontvanger se adres ongeldig of nie-bestaande is nie. Dit kan voorkom as gevolg van verskeie redes, soos die stuur van 'n e-pos na 'n nie-bestaande adres, 'n domein wat nie werklik is nie, of die weiering van die ontvangerbediener om e-posse te aanvaar.

In die konteks van AWS, as jy 1000 e-posse stuur en 100 daarvan lei tot harde stuiteringe (as gevolg van redes soos ongeldige adresse of domeine), beteken dit 'n harde stuiterkoers van 10%. Die bereiking of oorskryding van hierdie koers kan veroorsaak dat AWS SES (Simple Email Service) jou e-posstuurvermoëns blokkeer of opskort.

Dit is belangrik om 'n lae harde stuiterkoers te handhaaf om ononderbroke e-posdiens te verseker en die reputasie van die afsender te behou. Deur die kwaliteit van die e-posadresse in jou poslys te monitor en bestuur, kan jy aansienlik help om hierdie doel te bereik.

Vir meer gedetailleerde inligting kan verwys word na AWS se amptelike dokumentasie oor die hanteer van stuiteringe en klagtes AWS SES Bounce Handling.

Verwysings

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: