メールヘッダインジェクション【情報処理安全確保支援士講座】

今回は、情報処理安全確保支援士の試験で問われるメールヘッダインジェクションについて解説します。


この記事のまとめ
- メールヘッダインジェクションの概要
- メールヘッダインジェクションの流れ
- メールヘッダインジェクションの対策
メールヘッダインジェクション

メールヘッダインジェクションは、ユーザがフォームに入力したデータからメールを送信するWebアプリケーション上で実施される攻撃です。
不正なメールヘッダをメールに混入させ、意図していないaddressに迷惑メールを送信するあなど、メール送信機能を悪用します。

メールヘッダインジェクションの攻撃例
送信先のメールアドレス(To)が固定され、送信元のアドレス(From)と本文をフォームから入力する仕組みとなっているメール通信プログラムの例を挙げます。
送信元のアドレスとして改行コードとメールヘッダを含む文字列を入力すると、意図しないaddressにメールが送られる可能性があります。例えば下記のような仕様のメール送信フォームを考えてみましょう。
- Toアドレス:example@sikaku-no-iroha.co.jp
- Fromアドレス:フォームから入力
このメールヘッダを生成し、sendmailコマンドに引き渡すことでメールを送信します。ここで、「ts@test.com%0d%0aBcc%3a%20target@test.jp」といった文字列をFromアドレスに入力すると、下記のようなメールヘッダが生成され、意図しないアドレスにメールが送信されてしまいます。
- Toアドレス:example@sikaku-no-iroha.co.jp
- Fromアドレス:ts@test.com
- Bccアドレス:target@test.jp
メールヘッダインジェクションの対策方法
メールヘッダインジェクションの対策方法は下記が挙げられます。
- メールヘッダをすべて固定値にし、ユーザの入力値はメールヘッダに出力しない
- Webアプリケーションの実行環境や言語に実装されているメール送信用のAPIを使用する
- メールヘッダとして用いるユーザ入力データに対して改行コードのチェックを行う
メールヘッダインジェクション・例題
実際に例題を解いて問題に慣れていきましょう。
問
Webアプリケーションの問い合わせフォームから送信された利用者の入力内容を、そのまま電子メールの件名や宛先などのメールヘッダに設定して送信している。
このとき、利用者入力に改行コードを埋め込むことで、攻撃者がBccやCcなどの任意のメールヘッダを追加し、不正な大量メール送信を可能にする脆弱性を何というか。(オリジナル)
ア:SMTPコマンドインジェクション
イ:クロスサイトスクリプティング
ウ:メールヘッダインジェクション
エ:オープンリダイレクト
(ログイン後回答すると、ここに前回の正誤情報が表示されます)
メールヘッダインジェクション・まとめ
この記事のまとめ
- メールヘッダインジェクションの概要
- メールヘッダインジェクションの流れ
- メールヘッダインジェクションの対策
今回はメールヘッダインジェクションについて学習しました。メールヘッダインジェクションは午後(科目B)で出題実績があるので、対策方法を含めて確認しておきましょう。
次回はディレクトリトラバーサルについて学習します。









ディスカッション
コメント一覧
まだ、コメントがありません