Iframe 陷阱

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

基本信息

这种通过 iframe 滥用 XSS 来窃取用户在网页中导航时信息的方式,最初发表于 trustedsec.com 的这两篇文章: here and here

攻击从一个存在 XSS 的页面开始,在该页面可以让 受害者不离开 XSS,通过让他们在占据整个 web 应用的 iframe 内导航

XSS 攻击基本上会在占据 100% 屏幕的 iframe 中加载该网页。因此,受害者 不会注意到自己在 iframe 内。然后,如果受害者通过点击 iframe(网站内)的链接在页面中导航,他将会在加载了任意 JS 的 iframe 中 进行导航,从而窃取该导航中的信息。

此外,为了更逼真,可以使用一些 listeners 来检测 iframe 何时改变页面位置,并将浏览器的 URL 更新为用户认为自己正在用浏览器移动页面的那些位置。

https://www.trustedsec.com/wp-content/uploads/2022/04/regEvents.png

https://www.trustedsec.com/wp-content/uploads/2022/04/fakeAddress-1.png

此外,还可以使用 listeners 窃取敏感信息,不仅是受害者访问的其他页面,还包括用于 填写表单 的数据并将其发送(例如凭证?),或 窃取 local storage

当然,主要的限制是 受害者关闭标签页或在浏览器中输入另一个 URL 就会逃出 iframe。另一种可能的逃脱方式是 刷新页面,不过这可以通过在每次在 iframe 中加载新页面时禁用右键上下文菜单来部分 防止,或者通过检测用户鼠标何时离开 iframe(可能是为了点击浏览器的刷新按钮);在这种情况下,浏览器的 URL 会更新为原始的易受 XSS 攻击的 URL,因此如果用户刷新它,它将再次被污染(注意这并不是很隐蔽)。

现代化陷阱 (2024+)

  • 使用一个 full‑viewport iframe 加上 History/Navigation API 来模拟真实导航。
全视窗 iframe 陷阱 ```html ```
  • Navigation API (navigation.navigate, currententrychange) 使外部 URL 栏保持同步,而不会 leaking 实际 URL。
  • 进入 fullscreen 以隐藏浏览器 UI 并绘制你自己的假地址栏/锁图标。

Overlay & skimmer 使用

  • 受损的商家会将托管的支付 iframes(Stripe、Adyen 等)替换为一个 pixel‑perfect overlay,该 overlay 在真实 frame 位于下方时转发按键,有时会使用旧的验证 APIs 以保证流程不被中断。
  • 将用户困在顶层 frame 可以在他们注意到 URL 栏未改变之前捕获 autofill/password‑manager 数据。

2025 研究中观察到的规避技巧

  • about:blank/data: 本地 frames 会继承父级 origin 并绕过某些 content‑blocker 启发式;即便扩展移除第三方 frames,嵌套 iframes 也可能重新生成。
  • Permission propagation:重写父级 allow 属性会授予嵌套的攻击者 frames fullscreen/camera/microphone 权限,而不会有明显的 DOM 变化。

快速 OPSEC 提示

  • 当鼠标离开时(在 body 上监听 mouseleave),重新聚焦 iframe 以阻止用户接触浏览器 UI。
  • 在 frame 内禁用右键菜单和常见快捷键(监听 keydownF11Ctrl+LCtrl+T)以延缓逃离尝试。
  • 如果 CSP 阻止内联脚本,注入远程 bootstrapper 并在 iframe 上启用 srcdoc,使你的 payload 位于主页面强制执行的 CSP 之外。

相关

Clickjacking

参考资料

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks