Web安全之点击劫持(ClickJacking)

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

iframe覆盖

直接示例说明

1. 假如我们在百度有个贴吧,想偷偷让别人关注它。于是我们准备一个页面:

<!DOCTYPE HTML>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<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);
          position:absolute;
          z-index:2;
     }
     button{
          position:absolute;
          top: 315px;
          left: 462px;
          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>

PS:页面看起来就这样,当然真正攻击的页面会精致些,不像这么简陋。

2. 网址传播出去后,用户手贱点击了查看详情后,其实就会点到关注按钮。

PS:可以把iframe透明设为0.3看下实际点到的东西。

3. 这样贴吧就多了一个粉丝了。

解决办法

使用一个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>

图片覆盖

图片覆盖攻击(Cross Site Image Overlaying),攻击者使用一张或多张图片,利用图片的style或者能够控制的CSS,将图片覆盖在网页上,形成点击劫持。当然图片本身所带的信息可能就带有欺骗的含义,这样不需要用户点击,也能达到欺骗的目的。

PS:这种攻击很容易出现在网站本身的页面。

示例

在可以输入HTML内容的地方加上一张图片,只不过将图片覆盖在指定的位置。

<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属性是否可能导致浮出。

总结

点击劫持算是一种很多人不大关注的攻击,他需要诱使用户与页面进行交互,实施的攻击成本更高。另外开发者可能会觉得是用户犯蠢,不重视这种攻击方式。

本文为原创文章,转载请保留原出处,方便溯源,如有错误地方,谢谢指正。

本文地址 :http://www.cnblogs.com/lovesong/p/5248483.html

原文地址:https://www.cnblogs.com/longronglang/p/8444600.html

时间: 2024-10-08 01:14:31

Web安全之点击劫持(ClickJacking)的相关文章

web安全之点击劫持

点击劫持(clickjacking) 点击劫持最早是在08年由安全专家Reboot Hansen和Jeremiah Grossman发现,这种攻击方式影响了几乎所有的桌面平台.那么什么是点击劫持??点击劫持其实是一种视觉上的欺骗手段,攻击者将一个透明的.不可见的iframe覆盖在一个网页上,通过调整iframe页面位置,诱使用户在页面上进行操作,在不知情的情况下用户的点击恰好是点击在iframe页面的一些功能按钮上.比如转账,刷粉,下载....等      为了理解clickjacking,我们

《白帽子讲WEB安全》学习笔记之第5章 点击劫持(clickjacking)

第5章 点击劫持(clickjacking) 5.1 什么是点击劫持 点击劫持是一种视觉上的欺骗手段.是一种在网页中将恶意代码等隐藏在看似无害的内容(如按钮)之下,并诱使用户点击的手段. 主要特征 q  点击劫持是一种恶意攻击技术,用于跟踪网络用户,获取其私密信息或者通过让用户点击看似正常的网页来远程控制其电脑.很多浏览器和操作平台都有这样的漏洞. q  点击劫持技术可以用嵌入代码或者文本的形式出现,在用户毫不知情的情况下完成攻击,比如点击一个表面显示是"播放"某个视频的按钮,而实际上

基于iframe的CFS(Cross Frame Script)和Clickjacking(点击劫持)攻击

攻击原理: CFS攻击(Cross Frame Script(跨框架脚本)攻击)是利用浏览器允许框架(frame)跨站包含其它页面的漏洞,在主框架的代码 中加入scirpt,监视.盗取用户输入. Clickjacking(点击劫持) 则是是一种视觉欺骗手段,在web端就是iframe嵌套一个透明不可见的页面,让用户在不知情的情况下, 点击攻击者想要欺骗用户点击的位置. CFS 和 Clickjacking其实都是基于网页iframe产生的攻击.当没有预防的时候,攻击者可以利用iframe的方式包

ClickJacking(点击劫持)

问题: 点击劫持(ClickJacking)是一种视觉上的欺骗手段.大概有两种方式,一是攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,此时用户将在不知情的情况下点击透明的iframe页面:二是攻击者使用一张图片覆盖在网页,遮挡网页原有位置的含义: iframe覆盖 直接示例说明 1. 假如我们在百度有个贴吧,想偷偷让别人关注它.于是我们准备一个页面: DOCTYPE HTML><html><meta http-equiv="Conte

点击劫持(ClickJacking)

点击劫持 通过一种视觉上的欺骗手段,将用户对页面 A 的操作转移到隐藏的页面 B 上,以此达到让用户在不知情的情况下完成 B 页面上的特定任务,达到非法目的.其中,可以转移的操作有 "点击"."拖拽"."滑动" 等. 实现手法 iframe: iframe { width: 900px; height: 250px; /* Use absolute positioning to line up update button with fake bu

web安全:防范点击劫持的两种方式

防范点击劫持的两种方式 什么点击劫持?最常见的是恶意网站使用 <iframe> 标签把我方的一些含有重要信息类如交易的网页嵌入进去,然后把 iframe 设置透明,用定位的手段的把一些引诱用户在恶意网页上点击.这样用户不知不觉中就进行了某些不安全的操作. 有两种方式可以防范: 使用 JS 防范: if (top.location.hostname !== self.location.hostname) { alert("您正在访问不安全的页面,即将跳转到安全页面!"); t

百度贴吧点击劫持(可恶意刷粉丝)及解决方案

百度贴吧没考虑点击劫持防御,可造成恶意刷粉丝.估计很多地方都没考虑,还可以继续挖. 点击劫持(ClickJacking)是由互联网安全专家罗伯特.汉森和耶利米.格劳斯在2008年首创的.是一种视觉欺骗手段,在Web端就是Iframe嵌套一个透明不可见的页面,让用户在不知情的情况下,点击攻击者想要欺骗用户点击的位置. 百度贴吧页面没考虑该漏洞,可以导致恶意刷粉丝. 想象一下,我在某个大号下留个劲爆消息,诱导用户到我的域名点击按钮,最后大家都成我贴吧的粉丝了. 我的本地页面代码: <html> &

点击劫持漏洞

0x01:什么是点击劫持 点击劫持是一种视觉上的欺骗手段,攻击者使用一个透明的.不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户在不知情的情况下点击了透明的iframe页面.通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上,攻击者常常配合社工手段完成攻击. 0x02 漏洞危害 攻击者精心构建的另一个置于原网页上面的透明页面.其他访客在用户毫不知情的情况下点击攻击者的页面从而完成攻击.具体危害取决Web应用. 0x03 POC

ASP.NET MVC 防止前端点击劫持

前端点击劫持的原理:通过向我们的页面中添加Iframe,并将Iframe设置成透明,在页面相应的地方设置一些操作引导,让用户在不知不觉中发送一些请求. 解决前端点击劫持的手段就是在服务器端的响应报文中增加X-Frame-Options配置.X-Frame-Options值有3种: 1.DENY:无论如何不在框架中显示. 2.SAMEORIGIN: 仅在同源域名下的框架中显示. 3.ALLOW-FROM uri:仅在指定域名下的框架中显示. 配置X-Frame-Options的手段也有多种: 1.