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
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
基本信息
这种通过 iframe 滥用 XSS 来窃取用户在网页中导航时信息的方式,最初发表于 trustedsec.com 的这两篇文章: here and here。
攻击从一个存在 XSS 的页面开始,在该页面可以让 受害者不离开 XSS,通过让他们在占据整个 web 应用的 iframe 内导航。
XSS 攻击基本上会在占据 100% 屏幕的 iframe 中加载该网页。因此,受害者 不会注意到自己在 iframe 内。然后,如果受害者通过点击 iframe(网站内)的链接在页面中导航,他将会在加载了任意 JS 的 iframe 中 进行导航,从而窃取该导航中的信息。
此外,为了更逼真,可以使用一些 listeners 来检测 iframe 何时改变页面位置,并将浏览器的 URL 更新为用户认为自己正在用浏览器移动页面的那些位置。
.png)
https://www.trustedsec.com/wp-content/uploads/2022/04/regEvents.png
.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 内禁用右键菜单和常见快捷键(监听
keydown对F11、Ctrl+L、Ctrl+T)以延缓逃离尝试。 - 如果 CSP 阻止内联脚本,注入远程 bootstrapper 并在 iframe 上启用
srcdoc,使你的 payload 位于主页面强制执行的 CSP 之外。
相关
参考资料
- Iframe security exposed: blind spot fueling payment skimmer attacks (2025)
- Local Frames: exploiting inherited origins to bypass blockers (2025)
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
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。


