基于 SVG 的存储型 XSS

2022-02-24 09:01:09 浏览数 (1)

方法

找到一个具有许多功能的目标,包括讨论、发现、混音带、短裤、活动等等。我继续查看用户仪表板。

为什么我要在只有我是访问者的用户仪表板中寻找 xss?

好问题!如果我在那里找到 XSS,那么它将被认为是自我 XSS。这没有影响。将 self XSS 转换为有效的 XSS 将是一个挑战。

可以在仪表板外部共享的一个参数是profile picture url. 所以我需要找到一种方法来上传恶意文件而不是 jpeg。

在做了一些研究之后,我发现 svg 被认为是一个图像,它也允许 javascript 执行。单击此处查看 svg_xss 演示

如果你查看这个页面的源代码,你会发现这个 svg dom 中有一个 script 标签

好的,所以我们现在知道我们必须上传 svg 文件而不是有效的 jpeg。

绕过过滤器

只有可以上传的有效文件是 jpeg 或 png 文件。

文件是如何被验证的?

  • 他们正在创建一个仅发送图像标头的 api POST 请求。如果标头有效,则有另一个 POST 请求正在上传实际文件。没有对第二个 POST 请求进行验证。
  • 在这里,我们可以只发送一个有效的 png,然后在第二个请求中,我们可以将 png 内容替换为 svg 有效负载。

成功绕过检查并上传图片后,没有提示框等待我关闭它

0 人点赞