2024-02-21 10:03:04
Protonmail的存储型XSS漏洞是一种通过构造恶意邮件内容,在用户查看并回复邮件时触发跨站脚本攻击的安全漏洞。以下是关于该漏洞的详细介绍:
漏洞原理存储型XSS(Cross-Site Scripting)漏洞通常发生在应用程序将用户输入的数据存储在服务器端(如数据库),并在后续未经适当过滤或转义的情况下,将这些数据返回给其他用户时。攻击者可以利用这一漏洞,在用户输入中注入恶意脚本代码,当其他用户访问包含这些恶意代码的页面时,脚本会在其浏览器中执行,从而实现攻击目的。在Protonmail的案例中,攻击者通过在电子邮件编写页面的特定字段(如Subject)中注入恶意payload,构造出能够触发XSS攻击的邮件内容。
攻击步骤构造恶意邮件
攻击者在Protonmail的电子邮件编写页面的Subject字段中填入精心构造的payload。这个payload通常是一段JavaScript代码,用于在受害者的浏览器中执行特定的恶意操作。例如,攻击者可能使用如下形式的payload:<script>alert('XSS Attack!');</script>(这只是一个简单的示例,实际攻击中可能会使用更复杂的代码来实现窃取用户信息、劫持会话等恶意目的)。
构造好邮件内容后,攻击者将邮件发送给目标受害者。
受害者查看并回复邮件
受害者收到攻击者发送的邮件后,点击查看邮件内容。此时,邮件中包含的恶意payload会被受害者的浏览器解析。但由于存储型XSS的特性,仅查看邮件可能不会立即触发攻击(具体取决于应用程序的处理方式)。
当受害者对邮件进行回复操作时,浏览器在处理回复页面时,会重新加载邮件内容,包括其中包含的恶意payload。此时,恶意脚本代码会在受害者的浏览器中执行,从而实现XSS攻击。

在发现该漏洞后,报告者及时将其上报给了Protonmail安全团队。Protonmail安全团队迅速采取了措施来解决这些问题,可能包括对用户输入进行更严格的过滤和转义,确保在存储和返回邮件内容时,恶意脚本代码不会被执行;同时,对应用程序的代码进行审查和修复,消除可能存在的其他安全漏洞。由于安全团队的及时处理,该漏洞得到了有效修复,避免了可能对用户造成的更大危害。报告者也因发现并上报该漏洞获得了相应的奖金。