电子邮件是 XSS 的直接载体吗

信息安全 电子邮件 xss
2021-08-25 04:16:02

我很好奇是否有办法通过电子邮件执行 XSS。

我不是在谈论使用电子邮件作为传递其中反映 XSS 的链接的一种方式。

我说的是从 example.com 发送一封电子邮件,并在该电子邮件中包含 javascript,就像它在http://example.com上执行一样执行(即通过浏览器同源策略并可以读取响应xmlhttprequest)。

第一个答案是关于从 example.com 向 gmail.com 的用户发送一封电子邮件,该电子邮件可用于攻击 gmail.com。它还提到了 Thunderbird 中的问题,但没有说明这些问题是否允许攻击 example.com(即邮件的来源)或其他地方。

2个回答

的,在通过网络浏览器阅读电子邮件时,这是一个非常严重的问题。事实上,gmail 已经以几种 不同的 方式发生了这种情况。在更广泛的意义上,电子邮件中的 XSS 可用于传播基于电子邮件的蠕虫。XSS 有效负载可以访问您的联系人列表,还可以像您一样发送电子邮件。这类似于Sammy XSS 蠕虫

对于像 Outlook 或 Thunderbird 这样的客户端,这真的不是什么大问题,因为脚本执行的上下文对攻击者来说几乎是无用的。尽管已经发生了这种类型的漏洞,并且这种类型的 XSS 可以用于提供客户端漏洞利用,例如基于 html 或 javascript 的缓冲区溢出。雷鸟中的 XSS 与缓冲区溢出的配对会导致非常讨厌的电子邮件蠕虫。

你的问题的答案是“是”,但你问错了。如今,通过电子邮件的 XSS 仅在使用 Web 浏览器阅读电子邮件时才真正相关。现代邮件客户端默认不再解析脚本。

您正在阅读电子邮件的邮件服务(作为目标/受害者)需要有一个可用的 XSS 注入点,以便攻击者利用。这已经在多个服务中出现过,但仍然可以轻松快速地修复,因此问题很少见。

您提到电子邮件来自@example.com,但这与任何可能的攻击无关。在过去,我主要看到当邮件服务不正确地过滤邮件标题或用户信息时出现问题,然后允许代码注入。

并解决您问题的最后一部分:您的代码将在运行它的邮件服务的域下执行。如果您还在 example.com 中找到了 XSS 漏洞并且能够从邮件服务 XSS 注入中调用它,那么它只能在 example.com 下执行。