XSS SVG

介绍

跨站点脚本(XSS)是一个非常常见的漏洞,涉及在网页中注入javascript代码。从窃取用户Cookie到通过CORS绕过SOP,此漏洞可用于执行各种操作。有许多方法可以定位XSS漏洞,通常会忽略SVG文件。

SVG文件

可缩放矢量图形(SVG)是用于二维图形的基于XML的矢量图像格式,并支持交互性和动画。

以下代码是基本SVG文件的示例,该文件将显示矩形图片:


  

SVG文件还支持嵌入式javascript代码。例如,开发人员可能在svg图像中使用javascript,以便他们可以实时进行操作。这可以用于动画和其他任务。

要注意的另一件事是,SVG文件可以视为HTML中的图像。这意味着您可以将SVG文件放置在图像标签中,并且可以完美呈现:

Rectangle

Xss Payload

如果网站使用XSS有效负载加载SVG文件,则将执行该文件。开发人员和攻击者都经常忽视这一点。以下是带有警报XSS有效负载的SVG文件示例:





   
   

测试此漏洞的一种简单方法是上传SVG文件作为您的个人资料图片,如以下请求所示:


XSS SVG_第1张图片

注意内容类型设置为:

Content-Type: image/svg+xml

上传图像后,您只需找出图像上载到的路径即可。如果您使用的是Google chrome,则可以通过右键单击图片并选择“复制图片地址”来轻松完成此操作。如果在查看图像时一切正常,则将执行有效负载。您只是通过SVG文件存储了XSS。


XSS SVG_第2张图片

你可能感兴趣的:(XSS SVG)