• 新人开车——点击劫持


    一、什么是点击劫持

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

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

  • 相关阅读:
    SAP程序代码中RANGE表的用法注意点
    代码审计学习-1
    应用层隧道之HTTP/HTTPS和DNS
    应用层隧道技术之SSH
    横向移动-常用windows连接和相关命令
    基于MSF的路由转发
    渗透过程中的边界突破(内部分享笔记)
    网络层隧道之PowerCat
    网络层隧道之lcx和nc的使用
    网络层隧道构建之PingTunnel
  • 原文地址:https://www.cnblogs.com/hdsec/p/8427785.html
Copyright © 2020-2023  润新知