用途:排查目标网页是否存在点击劫持(UI Redressing)风险。攻击者可在恶意站点用透明 iframe 加载目标页面,使受害者看到诱饵界面却点击下方隐藏的目标界面,目标页面本身无需 JavaScript。高价值目标包括登录/认证页、转账与结账/确认支付按钮、账户设置(改邮箱、改密码、关闭 2FA)、OAuth 或社交登录的“授权应用”确认框以及管理员操作(删除、提升用户、改角色)。
防护机制:X-Frame-Options: DENY 为最强,阻止一切框架;SAMEORIGIN 仅允许同源;CSP 等价写法为 frame-ancestors 'none' 与 frame-ancestors 'self'。两者都不存在时页面可从任意来源被加框。
测试步骤:第一步为头部筛查,例如 tar -sI https://target.example/account/transfer | grep -iE 'x-frame-options|content-security-policy',若两者都缺失则为候选;若任一存在且具限制性即受保护,停止。第二步为证明,必须在真实浏览器中加载最小 PoC(带透明 iframe 的诱饵页),并确认页面确实在 iframe 内渲染(无 framebusting JS 跳出或置空)、被加框时敏感操作仍能跨站成功执行、且目标为状态变更操作而非只读页面。需注意 SameSite=Lax/Strict 会话 Cookie 在跨站框架请求中不发送,会导致点击劫持失败。
误报与证明要求:公开只读页面(首页/营销页)缺头部属低危或信息级;API 与非 HTML 端点(JSON、图片)不是攻击目标;仅缺头部不构成漏洞。有效报告需展示目标页在攻击者控制的 iframe 中渲染、在受害者已认证状态下可通过框架点击触达敏感状态变更操作、并提供覆盖层的截图或录像。仅有缺失头部的报告属文档质量问题,不是漏洞。