zoukankan      html  css  js  c++  java
  • 新人开车——点击劫持

    一、什么是点击劫持

      点击劫持是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。

      其关键作用的代码:

        iframe{

            900px;

            height:250px;

            position:absolute;

            top:-195px;

            left:-740px;

            z-index:2;

            -moz-opacity:0;

            opacity:0;

            filter:alpha(opacity=0);

          }

      通过控制iframe的长、宽,以及调整top、left的位置,可以把iframe页面内的任意部分覆盖到任何地方。同时设置iframe的position为absolute,并将z-index的值设置为最大,以达到

    让iframe处于页面的最上层。最后,再通过设置opacity来控制iframe页面的透明程度,值为0是完全不可见的。

      点击劫持与CSRF攻击有异曲同工之妙,都是在用户不知情的情况下诱使用户完成一些工作。但是在CSRF攻击的过程中,如果出现用户交互的页面,则攻击可能会无法顺利完成。与之相反的是,点击劫持没有这个顾虑,它利用的就是与用户产生交互的页面

    二、点击劫持案例

      1、Flash点击劫持

      2、图片覆盖攻击

      3、拖拽劫持与数据窃取

      4、手机触屏劫持

    三、防御点击劫持

      传统的方式一般是禁止跨域的iframe来防范。

      1、frame busting

        通常可以写一段JS代码,以禁止iframe的嵌套。

        比如如下代码:

          if ( top.location != location ){

                      top.location=self.location;

                      }

      但是这种方式也存在缺陷。由于它是JS写的,控制能力并不是特别强,因此有许多方法可以绕过。

      比如针对parent.location的iframe busting,就可以采用嵌套多个iframe的方法绕过。

        if ( top.location != self.location){

                      parent.location = self.location;

                      }

    绕过方式:

        Attacker top frame:

        <iframe src="attacker2.html">

        Attacker sub-frame:

        <iframe src="http://www.victim.com">

    此外,像HTML5中iframe的sandbox属性,IE中iframe的security属性等,都可以限制iframe页面中的JS脚本执行,从而可以使得frame busting失效。

      2、X-Frame-Options

      由于上面的防御方式容易被绕过,所以一个比较好的方案是使用一个HTTP头——X-Frame-Options。

      X-Frame-Options可以说是为了解决点击劫持而产生的。

      有三个可选的值:

        deny

        sameorigin

        allow-from origin

        当值为deny时,浏览器会拒绝当前页面加载任何frame页面;

        若值为sameorigin,则frame页面的地址只能为同源于域名下的页面;

        若值为allow-from origin,则可以定义允许frame 加载的页面地址。

    四、总结

      点解劫持相对于xss与csrf来说,因为需要诱使用户与页面产生交互行为,因此实施攻击的成本更高,在网络犯罪中比较少见。但是点击劫持在未来任然有可能被攻击者

    利用在钓鱼、欺诈和广告作弊等方面,不可不察。

  • 相关阅读:
    分享:TreeFrog 1.3 发布,基于 C++/QT 的 Web 框架
    Linux环境进程间通信(五): 共享内存(上)
    TUP第二期:架构师王鹏云演讲实录 _业界_科技时代_新浪网
    发布我的倒排索引 C/C++ ChinaUnix.net
    操作系统内存管理——分区、页式、段式管理
    内存管理内幕
    IT农民工如何来美国工作
    来自 王斌 (@iwangbin) 的推文
    ScheduledExecutorService执行周期性或定时任务
    PHP XML parse error: Extra content at the end of the document
  • 原文地址:https://www.cnblogs.com/hdsec/p/8427785.html
Copyright © 2011-2022 走看看