CSS:the bomb inside your inbox Published: Thursday, 6 August 2026 at 22:00 UTC Updated: Thursday, 6 August 2026 at 22:00 UTC Gareth Heyes - gareth.heyes@portswigger.net - @garethheyes It's quite commo...
theandHTMLCSSthiswebmailcanMailforclients
2026-08-09
1 阅读
约6分钟阅读
ashurandi
分享:
字号:
CSS:收件箱内的炸弹 发布:2026 年 8 月 6 日星期四 22:00 UTC 更新:2026 年 8 月 6 日星期四 22:00 UTC Gareth Heyes - gareth.heyes@portswigger.net - @garethheyes 对于网络邮件客户端来说,在受信任的 UI 中呈现不受信任的 CSS 是很常见的。他们尝试使用 CSS 清理来确保安全。在本文中,我将向您展示如何突破信任边界、窃取令牌、破坏第三方网站甚至窃取密码。目录 简介 Webmail 已经存在了几十年,它始终需要解决一个非常困难的问题:获取不受信任的 HTML 并以安全的方式将其显示给用户。每个网络标准的不断发展使得这一点变得更具挑战性。为了解决这个问题,webmail 使用了 sanitizers,它们尝试获取提供的 HTML 并对其进行限制,以便它可以安全地显示给用户。问题是,您可能会在消毒程序认为安全的内容与浏览器实际呈现的内容之间产生差异。一些网络邮件客户端更进一步,让浏览器首先解析 HTML 和 CSS,然后过滤浏览器的解释输出而不是原始源。但即便如此,这也可能会变异成恶意的东西。在过去的几个月里,我一直在研究网络邮件客户端,例如 Yahoo Mail、AOL Mail、Fastmail、ProtonMail、GMail 和 Outlook。寻找解析器中的差异和消毒剂中的弱点,以产生一系列新颖的技术来帮助利用它们。滥用允许的 HTML/CSS 在本节中,我研究了各种“允许列出的”CSS 属性和 HTML。目的是滥用它们来欺骗 UI 操作、控制浏览器、接管帐户或窃取代币。我的目标是 Fastmail、OpenAI 的 Atlas、Firefox、AOL Mail、Yahoo Mail 和 Outlook。滥用 HTML 标签来执行 UI 操作 HTML 标签是一个经常被忽视的元素,使用标签标记,您可以通过使用标签的 for 属性来定位具有 id 属性的特定表单元素。这适用于任何表单元素,并且您继承附加到该元素的单击操作。 HTML 清理程序经常会忽略它们,我发现至少有 3 个网络邮件客户端容易受到此攻击。我在 Outlook 中发现了一个真正的错误,它使我能够通过电子邮件控制 Outlook 的 UI。
使用标签,我们可以打开 Outlook 的 UI 功能区,然后我们可以将邮件固定到受害者的 Outlook。由于微软没有修复它,所以今天仍然有效。如果您找到允许标签且不过滤“for”属性的消毒剂,您可以使用 devtools 使用下面的 JS 查找目标。 document.querySelectorAll('input[id],button[id],select[id],textarea[id]') 此代码查找具有 id 的 input、button、select 和 textarea 元素。这只是开始,稍后我们将回到 Outlook。标签元素对我们来说非常有用。通过电子邮件控制 AI 浏览器 当我研究这个主题时,OpenAI 发布了一款名为 Atlas 的浏览器,因此我决定看看是否可以使用经过净化的 CSS 从 Fastmail 中的电子邮件执行间接提示注入。在进一步讨论之前,让我们先介绍一下 :before 和 :after 伪元素。它们允许您在元素之前或之后添加文本内容,并且您可以根据自己的喜好设置该内容的样式。它们还继承元素的现有单击事件,稍后当我们讨论 CSS 热连线时我会再讨论这一点。我将使用它们来隐藏 AI 浏览器中的文本。