👿

Webアプリケーションに関する脆弱性をまとめてみる(後編)

2023/01/20に公開

主な脆弱性一覧

  • クロスサイトスクリプティング(通称:XSS)
  • SQLインジェクション
  • OSコマンドインジェクション
    ↓↓↓今回はここから↓↓↓
  • HTTPヘッダインジェクション
  • メールヘッダインジェクション
  • ディレクトリトラバーサル

HTTPヘッダインジェクション

  • 概要
    ユーザの入力データをもとに、HTTPメッセージのレスポンス(メッセージヘッダ、ボディ)を
    生成するアプリケーションにおいて、任意のヘッダ情報等を追加する攻撃
  • 影響
    任意のCookie情報を挿入され、不正ログインされる
    偽の情報を表示される、など
  • 対策
    1.直接HTTPヘッダを出力させるのではなく、APIをかまして出力させる
    2.改行コードを削除する(認識させない)
  • 参考
    安全なウェブサイトの作り方 - 1.7 HTTPヘッダ・インジェクション

メールヘッダインジェクション

  • 概要
    メールフォーム等で、不正なメールヘッダを混入する攻撃
  • 影響
    意図しないアドレスに迷惑メールを送られてしまう

  • 脆弱性を有するフォームにて、Fromのアドレスをフォームから指定するような場合、
kumata@hogehoge.jp%0d%0aBcc%3a%20

※「%0d%0a」はCR+LFの改行コード
 「%3a」は「:」
「%20」はスペースをそれぞれ表す

ディレクトリトラバーサル

  • 概要
    ユーザの入力内容からサーバ内部のファイルにアクセスするような際に、
    ファイル名に「../」や「..\」(※1つ前の階層に戻る指定)等を入れるような攻撃
  • 影響
    意図せぬファイルが閲覧できてしまう

  • 脆弱性が存在するようなWebアプリケーション上で、
    /var/files/という階層にデータを保存しているような構造で、
../log/messages

上記のような参照をすると"/var/log/messages"が閲覧できてしまう可能性がある

  • 対策
    1."basename"コマンドや関数を使用し、文字列からディレクトリ名を取り除く
    2.「/」「../」「..\」などが入力値に含まれていた場合、エラーを返すようにする
    3.ファイルのアクセス権を適切にする

所感

メールヘッダインジェクションやディレクトリトラバーサルは、
Unixの知識やメールサーバの運用経験があるからイメージしやすかった。

Discussion