HTML5安全攻防详析之七:新标签攻击

安全 应用安全
HTML5引入的新标签有一些有趣的属性,例如poster、autofocus、onerror、formaction、oninput,这些属性都可以用来执行javascript。这会导致XSS和CSRF跨域请求伪造。

HTML5去掉了很多过时的标签,例如<center>和<frameset>,同时又引入了许多有趣的新标签,例如<video>和<audio>标签可以允许动态的加载音频和视频。

HTML5引入的新标签包括<Audio>、<Video>、<Canvas>、<Article>、<Footer>等等,而这些标签又有一些有趣的属性,例如poster、autofocus、onerror、formaction、oninput,这些属性都可以用来执行javascript。这会导致XSS和CSRF跨域请求伪造。

下面我们要讲到就是这些关键载体。它允许创建XSS的变种并且可以绕过现有的XSS过滤器。

首先来看一个标签:

  1. <video><sourceonerrorsourceonerrorsourceonerrorsourceonerror="javascript:alert(1)“>  

它使用了一个source标签,而没有指定具体的src,所以后面的onerror方法会立即得到执行。

下面是video的poster属性,它链接到一个图像,是指当视频未响应或缓冲不足时,显示的占位符。

  1. <videopostervideopostervideopostervideoposter=”javascript:alert(1)”> 

另外还有HTML5新引入的autofocus和formaction属性,autofocus会让元素自动的获取焦点,而formaction属性能覆盖 form 元素的action 属性。

  1. [html] view plaincopyprint?  
  2. 01.<inputautofocus onfocus=“alert(1)”>    
  3. 02.<form><buttonformactionbuttonformactionbuttonformactionbuttonformaction="javascript:alert(1)">  

在这个项目里存在用户输入的地方,我们虽然已经针对旧有的标签以及属性进行了过滤和清洗,但是还会存在新标签攻击的漏洞,攻击者利用上面的示例方式就可以对系统进行XSS注入攻击。例如攻击者输入http://www.yujie.com/1.php?text=<videoposter=”javascript:alert(1)”>时就能立即运行攻击脚本。

我们对此攻击的防御方式是,对前端或者后端的过滤器进行优化,添加过滤规则或者黑名单。

责任编辑:蓝雨泪 来源: 博客
相关推荐

2013-01-21 11:04:38

2013-01-21 13:52:47

2013-01-04 13:39:51

2013-01-04 13:30:04

2013-01-04 13:14:22

2013-01-04 11:40:54

2013-01-04 11:22:12

2013-01-04 11:38:35

2021-06-16 09:40:44

网络安全物联网代码

2021-05-07 14:12:50

网络安全Web安全CSRF

2021-04-30 19:38:42

网络安全WebHTTP

2021-05-13 20:38:30

2014-08-26 10:54:20

2021-05-08 15:22:31

网络安全Web安全SQL

2021-04-27 10:00:27

网络安全WebURL

2021-04-25 21:45:25

网络安全网络安全攻防ZigBee安全

2021-03-15 13:50:24

网络安全Android安全机制

2021-04-01 10:40:22

网络安全软件

2021-03-22 10:52:58

网络安全Android数据安全

2021-04-23 13:35:41

网络安全蓝牙Wi-Fi
点赞
收藏

51CTO技术栈公众号