是否可以通过文件名上传图像来获取 XSS?

信息安全 xss 上传文件
2021-08-15 15:00:01

我只是想知道它是否可能......如果我有一个图像,即 abc.jpeg,我将它重命名为一个 XSS 向量,例如它<img src=x onerror=alert(1)>.jpeg会成功生成 XSS 还是实际上有另一种方法来做到这一点......

1个回答

是否存在一些以这种方式易受攻击的网站?当然,很明显。如果服务器获取用户提供的文件名并尝试将其非转义地发送到文档中,您将获得 XSS。与任何其他用户提供的数据相同。

您正在查看的特定站点,或者实际上是整个 Internet 上的任何站点,是否存在漏洞?前者我们无从知晓,我至少不知道后者。

请注意,有很多方法可以攻击文件上传。上传包含恶意 javascript 的 HTML 文件,然后向服务器请求 XSS。使用路径遍历覆盖其他文件,这可能会覆盖用户数据、丢弃服务器或可能让您在服务器上执行代码。使用空格和 shell 元字符来尝试获取命令注入(代码执行)。上传一个服务器端代码文件(PHP、ASPX、JSP,无论服务器使用什么)并导航到该页面,看看您是否可以让服务器执行您的代码。上传 zip 炸弹并尝试拒绝服务服务器。上传一个非常大的文件,看看服务器是否试图将它全部保存在内存中。这样的很多选择!这取决于服务器期望什么类型的文件,它如何强制执行(内容类型?文件扩展名?幻数?),它应用什么清理,服务器对文件做了什么,用户是否可以再次请求它们,以及当用户请求它们时会发生什么。就像字面上所有其他类型的输入一样。