キャンプで頂いた「脆弱性診断スタートガイド」という書籍に載っていた「クリックジャッキング」という攻撃手法を検証してみました。
クリックジャッキングとは、正規のWebサイトの機能をユーザが意図しない形で実行させることができる手法です。例えば、会員登録型サービスにおける退会処理をゲームに見せかけたページで実行させるなどが可能です。
以下では、実際にサンプルを作成してその効果について検証してみました。
見ただけでは単なるPLAYボタンが表示されているサイトにしか見えません。しかし、opacity=0のチェックを外すとiframeが出現します。
実はこのiframeはチェックがついていたときも存在しています。しかし、チェックが入っていたときは透過させることで見えない状態になっていました。
この攻撃手法では攻撃者が用意したページに正規のサイトを透過して最前面におくことで、ユーザが意図しない形で処理を実行させることが出来ます。例えばCSRFが存在しなくてもこの形式であればCSRF対策用トークンを取得した状態で確定を行うことも可能ではないかと思いました。
ソースはGithubにあげました。よかったらスターお願いします。
tomoyk/clickJackingSample: クリックジャッキングのサンプル
Webアプリのセキュリティは奥が深いと思う日々です。
(2017/11/13 追記)
クリックジャッキングの対策としては「X-Frame-Optionsレスポンスヘッダー」を「SAMEORIGIN」か「DENY」に設定することが考えられます。
コメントを残す