hacktricks/pentesting-web/email-injections.md

180 lines
11 KiB
Markdown
Raw Normal View History

2024-02-11 02:07:06 +00:00
# E-posinjeksies
2022-04-28 16:01:33 +00:00
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
2024-02-11 02:07:06 +00:00
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik en outomaties werkstrome te bou wat aangedryf word deur die wêreld se mees gevorderde gemeenskapsinstrumente.\
Kry vandag toegang:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 02:07:06 +00:00
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 02:07:06 +00:00
Ander maniere om HackTricks te ondersteun:
2023-12-31 01:25:17 +00:00
2024-02-11 02:07:06 +00:00
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
2022-04-28 16:01:33 +00:00
</details>
2024-02-11 02:07:06 +00:00
## Injecteer in gestuurde e-pos
2024-02-11 02:07:06 +00:00
### Injecteer Cc en Bcc na die sender-argument
2021-11-27 01:09:08 +00:00
```
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
```
2024-02-11 02:07:06 +00:00
Die boodskap sal na die ontvanger en ontvanger1 rekeninge gestuur word.
2024-02-11 02:07:06 +00:00
### Injecteer argument
2021-11-27 01:09:08 +00:00
```
From:sender@domain.com%0ATo:attacker@domain.com
```
2024-02-11 02:07:06 +00:00
Die boodskap sal na die oorspronklike ontvanger en die aanvaller se rekening gestuur word.
2024-02-11 02:07:06 +00:00
### Injecteer Onderwerp argument
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
```
2024-02-11 02:07:06 +00:00
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.
2024-02-11 02:07:06 +00:00
### Verander die liggaam van die boodskap
2024-02-11 02:07:06 +00:00
Spuit 'n twee-lynvoer in, skryf dan jou boodskap om die liggaam van die boodskap te verander.
2021-11-27 01:09:08 +00:00
```
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
```
2024-02-11 02:07:06 +00:00
### 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:
2024-02-11 02:07:06 +00:00
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.
2021-11-27 01:09:08 +00:00
2024-02-11 02:07:06 +00:00
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.
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-11 02:07:06 +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
}
```
2024-02-11 02:07:06 +00:00
#### Die 5de parameter ($additional\_parameters)
2021-11-27 01:09:08 +00:00
2024-02-11 02:07:06 +00:00
Hierdie gedeelte is gebaseer op **hoe om hierdie parameter te misbruik as 'n aanvaller dit beheer**.
2021-11-27 01:09:08 +00:00
2024-02-11 02:07:06 +00:00
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)`.
2021-11-27 01:09:08 +00:00
2024-02-11 02:07:06 +00:00
'n Aanvaller kan **ekstra parameters vir sendmail inspuit** in hierdie geval.
2021-11-27 01:09:08 +00:00
2024-02-11 02:07:06 +00:00
#### Verskille in die implementering van /usr/sbin/sendmail
2021-11-27 01:09:08 +00:00
2024-02-11 02:07:06 +00:00
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.
2021-11-27 01:09:08 +00:00
2024-02-11 02:07:06 +00:00
Hier is 'n paar voorbeelde van verskillende manbladsye van die sendmail-opdrag/koppelvlak:
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
2024-02-11 02:07:06 +00:00
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**](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html)
2021-11-27 01:09:08 +00:00
2024-02-11 02:07:06 +00:00
## Inspuiting in die e-posnaam
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
### Geïgnoreerde dele van 'n e-pos
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
Die simbole: **+, -** en **{}** kan in seldsame gevalle gebruik word vir merking en geïgnoreer word deur die meeste e-posbedieners
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
* Byvoorbeeld: john.doe+intigriti@example.com → john.doe@example.com
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
**Kommentaar tussen hakies ()** aan die begin of die einde sal ook geïgnoreer word
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
* Byvoorbeeld: john.doe(intigriti)@example.com → john.doe@example.com
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
### Whitelist-omseiling
2022-12-29 12:18:46 +00:00
2024-02-05 20:00:40 +00:00
<figure><img src="../.gitbook/assets/image (4) (6).png" alt="https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
### Aanhalingstekens
2022-12-29 12:18:46 +00:00
2024-02-05 20:00:40 +00:00
<figure><img src="../.gitbook/assets/image (6) (4).png" alt="https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0"><figcaption></figcaption></figure>
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
### IP-adresse
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
Jy kan ook IP-adresse gebruik as domeinname tussen vierkante hakies:
2022-12-29 12:18:46 +00:00
* john.doe@\[127.0.0.1]
* john.doe@\[IPv6:2001:db8::1]
2024-02-11 02:07:06 +00:00
### Ander kwesbaarhede
2022-12-29 12:18:46 +00:00
2024-02-05 20:00:40 +00:00
![https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0](<../.gitbook/assets/image (296).png>)
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
## Derde party SSO
2022-12-29 12:18:46 +00:00
### XSS
2024-02-11 02:07:06 +00:00
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.
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
### Rekening-oorgawe
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
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.
2022-12-29 12:18:46 +00:00
## Reply-To
2024-02-11 02:07:06 +00:00
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**.
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
## Harde stuiterkoers
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
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.
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
'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.
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
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.
2024-02-05 20:00:40 +00:00
2024-02-11 02:07:06 +00:00
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.
2024-02-05 20:00:40 +00:00
2024-02-11 02:07:06 +00:00
Vir meer gedetailleerde inligting kan verwys word na AWS se amptelike dokumentasie oor die hanteer van stuiteringe en klagtes [AWS SES Bounce Handling](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-types).
2022-12-29 12:18:46 +00:00
2024-02-11 02:07:06 +00:00
## Verwysings
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
<details>
2024-02-11 02:07:06 +00:00
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 02:07:06 +00:00
Ander maniere om HackTricks te ondersteun:
2022-04-28 16:01:33 +00:00
2024-02-11 02:07:06 +00:00
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks