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来说,因为需要诱使用户与页面产生交互行为,因此实施攻击的成本更高,在网络犯罪中比较少见。但是点击劫持在未来任然有可能被攻击者

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

  • 相关阅读:
    Commons JXPath
    10到十分精彩的智力题,你能过关几道?
    程序员下班电脑不关机的5大原因,你中招了吗?
    程序员下班电脑不关机的5大原因,你中招了吗?
    MySQL的一些概念笔记
    MySQL的一些概念笔记
    Shell中I/O重定向的用法笔记
    Shell中I/O重定向的用法笔记
    Shell重定向的概念笔记
    Shell重定向的概念笔记
  • 原文地址:https://www.cnblogs.com/hdsec/p/8427785.html
Copyright © 2011-2022 走看看