ketyiaの学んだこと議事録

このサイトでは学んだことを記事にまとめていきます

ウェブ・セキュリティ基礎試験(徳丸試験)の勉強 ⑫リダイレクト

ウェブ・セキュリティ基礎試験(徳丸試験)の勉強 ⑫リダイレクト

こんばんわ!
世間では徳丸試験といわれている、ウェブ・セキュリティ基礎試験に挑戦しようということで、いつものごとくアウトプットで記事にまとめていきます。

今回は第十二回目のリダイレクトについてまとめます。

オープンリダイレクト


オープンリダイレクト(open redirect)は、Webアプリケーションの脆弱性の一つで、外部から指定可能な任意のURLへの遷移(リダイレクト)が機能に含まれていることを指します。この脆弱性は攻撃者によって悪意のあるサイトへの誘導に悪用される恐れがあります。攻撃としてはフィッシングがあげられます。

これの原因は下記2つです。

・リダイレクト先のURLを外部から指定できる

・リダイレクト先のドメイン名のチェックがない

差支えない場合は下記です。

・もともと外部のドメインに遷移する仕様

・利用者にとって外部ドメインに遷移することが自明であること

対策は下記3点です。

・リダイレクト先のURLを固定すること

・リダイレクト先のURLを直接指定せず番号指定にすること

・リダイレクト先のドメイン名をチェックすること

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


HTTPヘッダインジェクションは、Webシステムに対する攻撃手法の一つで、Webのデータ送受信に用いられるHTTPのヘッダ部分を改竄することにより、Webブラウザに不正なデータを送信する手法です。また、そのような攻撃を可能にする、ソフトウェアの保安上の欠陥(脆弱性)も指します。

被害者のブラウザに以下の影響が考えられます。

・任意のレスポンスヘッダを追加される

・レスポオンスボディの偽造が起こされたりします。

Webアプリケーションには以下の影響が考えられます。

・任意のクッキーを生成

・任意のURLへのリダイレクト

・表示内容改ざん

・任意のJS実行によるXSSと同様の被害

対策は下記があります。

・外部からのパラメータをHTTPレスポンスヘッダとして出力しない
 →リダイレクト先のURLを固定にするか番号で指定する
 →Webアプリケーション開発ツールの提供するセッション変数を使用しURLを受け渡す

・リダイレクトやクッキー生成を専用APIに任せる

・ヘッダ生成するパラメータの改行文字をチェックする

 

今日はここまでです!
読んでいただきありがとうございました。