首页 资讯 安全 查看内容

SVG在Web攻击中的应用

2019-11-17 11:44 |来自: 互联网 1385 0

摘要: 0x00 前言在过去几周中,FortiGuard Labs一直在研究带有SVG(Scalable Vector Graphics)图像的Web应用。根据研究结果,我们找到了Web应用中的一些常见问题。在本文中,我们简要介绍了SVG的特点以及针对SVG图像的常见攻击面。根据之前的研究结果,我们梳理了一些常见的SVG攻击方式,如下所示:跨站脚本 ...
关键词: SVG 图像 攻击 代码 浏览器 Entity 元素 Laughs Billion

0x00 前言

在过去几周中,FortiGuard Labs一直在研究带有SVG(Scalable Vector Graphics)图像的Web应用。根据研究结果,我们找到了Web应用中的一些常见问题。在本文中,我们简要介绍了SVG的特点以及针对SVG图像的常见攻击面。

根据之前的研究结果,我们梳理了一些常见的SVG攻击方式,如下所示:

  • 跨站脚本(Cross-Site Scripting)
  • HTML注入
  • XML实体:“Billion Laughs”攻击(针对XML文档解析器的一种DoS攻击)
  • DoS(拒绝服务):新型SVG “Billion Laughs”攻击。

0x01 SVG简介

SVG的全称为 Scalable Vector Graphics(可缩放矢量图),是一种基于XML的二维矢量图格式,支持交互性及动画展示。SVG图像及具体行为由XML文本文件定义,可以通过任何文本编辑器以及绘图软件来创建并编辑。目前所有主流web浏览器都支持渲染SVG图像。

来观察一个示例,更好理解SVG图像。如下图所示,我们编写了一些代码来渲染SVG图像:

图1. simple.svg代码片段

将该图像保存为simple.svg,然后直接打开,或者将其包含在img/image/object/embed HTML标签中,如下图所示:

图2. 通过代码渲染图像

图1代码渲染生成的图像如图2所示,这是rect元素,浏览器会在x, y (100, 100)(即宽度和高度)位置渲染一个红色矩形。

0x02 使用SVG的攻击场景

虽然SVG提供了较大的灵活性,可以方便创建更多的动态web内容,但同时也引入了一些安全风险。在下文中,我们将讨论一些常见的攻击向量,我们在互联网上的一些主流站点上都观察到过这些攻击方式。

跨站脚本

我们可以通过脚本方式来访问并修改SVG文档的任何内容,这与HTML操作方式类似。默认的脚本语言为ECMAScript(与JavaScript密切相关),每个SVG元素及属性都对应已定义的DOM(Document Object Model,文档对象模型)对象。相关脚本被封装在

本文出处: https://www.toutiao.com/a6759044806984335883/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部