Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >界面劫持之点击劫持

界面劫持之点击劫持

原创
作者头像
美创科技
发布于 2023-06-13 07:14:54
发布于 2023-06-13 07:14:54
9360
举报
文章被收录于专栏:企业安全企业安全

01 概况

赛门铁克(Symantec)在2019年的《互联网安全威胁报告》中称:Formjacking 攻击飙升,已有取代勒索和挖矿成为互联网安全最大威胁之势。Formjacking 从技术角度看,主要是将恶意 javascript 代码嵌入到合法网站中,用于获取敏感信息,而这种攻击手法本质上属于界面劫持中的 clickjacking(点击劫持)。本文将结合界面劫持的发展历程,以实例讲解点击劫持的原理并介绍目前针对此类攻击的防御思路。

02 页面劫持发展历程

界面操作劫持攻击实际上是一种基于视觉欺骗的 web 会话劫持攻击,核心在于使用了<iframe>标签中的透明属性,他通过在网页的可见输入控件上覆盖一个不可见的框,使得用户误以为在操作可见控件,而实际上用户的操作行为被其不可见的框所劫持,执行不可见框中的恶意代码,达到窃取信息,控制会话,植入木马等目的。从发展历程看,主要有三类:

2.1点击劫持

点击劫持又称UI-覆盖攻击,是2008年由互联网安全专家罗伯特·汉森和耶利米·格劳斯曼提出点击劫持的概念。因为首先劫持的是用户的鼠标点击操作,所以命名叫点击劫持。主要劫持目标是含有重要会话交互的页面,如银行交易页面、后台管理页面等。曾经 Twitter 和 Facebook 等著名站点的用户都遭受过点击劫持的攻击。

2.2拖放劫持

在2010的 Black Hat Europe 大会上,Paul Stone 提出了点击劫持的技术演进版本:拖放劫持。由于用户需要用鼠标拖放完成的操作越来越多(如复制粘贴、小游戏等等),拖放劫持大大提高了点击劫持的攻击范围,将劫持模式从单纯的鼠标点击拓展到了鼠标拖放行为。最主要的是,由于拖放操作不受浏览器“同源策略“影响,用户可以把一个域的内容拖放到另一个不同的域,由此攻击者可能通过劫持某个页面的拖放操作实现对其他页面链接的窃取,从而获得 session key,token,password 等敏感信息,甚至能将浏览器中的页面内容拖进文本编辑器,查看源代码。2011年出现的 Cookiejacking 攻击就是拖放攻击的代表,此攻击的成因是由于本地 Cookie 可以用<iframe>标签嵌入,进而就可以利用拖放劫持来盗取用户的 Cookie。

2.3触屏劫持

随着触屏技术的发展,clickjacking 的攻击方式也更进一步,2010年斯坦福公布触屏劫持攻击。通过将一个不可见的 iframe 覆盖到当前网页上就可以劫持用户的触屏操作。由于手机屏幕范围有限,手机浏览器为了节省空间把地址栏隐藏起来,因此在手机上的视觉欺骗更容易实施。

03 点击劫持原理

3.1透明层+iframe

透明层使用了 CSS 中的透明属性,在(Chrome,FireFox,Safari,Opera浏览器)中:

opacity:0.5;数值从0到1,数值越小透明度越高,反之越明显。

z-index:1;数值越高越靠近用户,高数值控件在低数值控件前。

使用 iframe 嵌入被劫持的页面 <iframe id=”victim” src=”http://www.victime.com”>

opacity:1
opacity:1
opacity:0
opacity:0

3.2 目标网页隐藏技术

目标网页隐藏技术原理是攻击者在恶意网站上通过 iframe 载入目标网页,然后隐藏目标网页,欺骗用户点击隐藏的恶意链接。目前主要的网页隐藏技术有两种:CSS 隐藏技术和双 iframe 隐藏技术。(双 iframe 隐藏技术使用内联框架和外联框架。内联框架的主要功能是载入目标网页,并将目标网页定位到特定按钮或者链接。外联框架的主要功能是筛选,只显示内联框架中特定的按钮。)

3.3点击操作劫持技术

在成功隐藏目标网页后,攻击者下一个目标是欺骗用户点击特定的按钮,最简单实用的方法是使用社会工程学。例如,将攻击按钮外观设计成类似QQ消息的提示按钮,诱使用户点击从而触发攻击行为。另外一种思路是使用脚本代码以及其他技术增加用户点击特定按钮的概率。主要方法如 JavaScript 实现鼠标跟随技术、按键劫持 (Stroke jacking) 技术等。

04 点击劫持技术简单实现

4.1:Index.html 是一个用户可见的伪装页面,在其页面中设置 iframe 所在层为透明层,并在 iframe 中嵌套了 inner.html 页面。

4.2:在 index.html 页面中设计的“Click me”按钮的位置与 inner.html 页面中“Login”按钮的位置重合。

4.3:当用户以为在点击 index.html 页面上的“Click me”按钮时,实际是触发了 inner.html 页面上的“Login”按钮的onclick方法。

点击 Click me 却触发了上层 iframe 标签的 inner.html 中 Login 的 onclick()。

05 点击劫持漏洞的防御技术

服务器端防御点击劫持漏洞的思想是结合浏览器的安全机制进行防御,主要的防御方法介绍如下。

5.1服务器端防御

1、X-FRAME-OPTIONS 机制

在微软发布新一代的浏览器 Internet Explorer 8.0中首次提出全新的安全机制:

X-FRAME-OPTIONS。该机制有两个选项:DENY 和 SAMEORIGIN。DENY 表示任何网页都不能使用 iframe 载入该网页,SAMEORIGIN 表示符合同源策略的网页可以使用 iframe 载入该网页。除了 Chrome 和 safari 以外,还支持第三个参数 Allow-From(白名单限制)。如果浏览器使用了这个安全机制,在网站发现可疑行为时,会提示用户正在浏览 网页存在安全隐患,并建议用户在新窗口中打开。这样攻击者就无法通过 iframe 隐藏目标的网页。

2、使用 FrameBusting 代码

点击劫持攻击需要首先将目标网站载入到恶意网站中,使用 iframe 载入网页是最有效的方法。Web 安全研究人员针对 iframe 特性提出 Frame Busting 代码,使用 JavaScript 脚本阻止恶意网站载入网页。如果检测到网页被非法网页载入,就执行自动跳转功能。Frame Busting 代码是一种有效防御网站被攻击者恶意载入的方法,网站开发人员使用 Frame Busting 代码阻止页面被非法载入。需要指出的情况是,如果用户浏览器禁用 JavaScript 脚本,那么 FrameBusting 代码也无法正常运行。所以,该类代码只能提供部分保障功能.

(禁止iframe的嵌套)
(禁止iframe的嵌套)

3.使用认证码认证用户 点击劫持漏洞通过伪造网站界面进行攻击,网站开发人员可以通过认证码识别用户,确定是用户发出的点击命令才执行相应操作。识别用户的方法中最有效的方法是认证码认证。例如,在网站上广泛存在的发帖认证码,要求用户输入图形中的字符,输入某些图形的特征等。

5.2客户端防御

由于点击劫持攻击的代码在客户端执行,因此客户端有很多机制可以防御此漏洞。

1、升级浏览器

最新版本的浏览器提供很多防御点击劫持漏洞的安全机制,对于普通的互联网用户,经常更新修复浏览器的安全漏洞,能够最有效的防止恶意攻击。

2、NoScript 扩展

对于 Firefox 的用户,使用 NoScript 扩展能够在一定程度上检测和阻止点击劫持攻击。利用 NoScript 中 ClearClick 组件能够检测和警告潜在的点击劫持攻击,自动检测页面中可能不安全的页面。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
点击劫持漏洞的学习及利用之自己制作页面过程
该文章首发于:奇安信攻防社区 https://forum.butian.net/share/436
亿人安全
2022/06/30
2.5K0
点击劫持漏洞的学习及利用之自己制作页面过程
界面劫持之触屏劫持
移动智能终端设备由于体积限制,一般都没有鼠标、键盘这些输入设备,用户更多的操作是依靠手指在触屏上的点击或滑动等动作完成。在移动设备上,类似点击劫持的攻击模式,实现了对用户触摸屏操作的劫持攻击,即界面操作劫持攻击的又一种形式——触屏劫持。
美创科技
2023/07/04
6180
界面劫持之触屏劫持
Hijack攻击揭秘
概述 Clickjacking是最近新兴的针对WEB前端的攻击手段。它通常使用一个ifream覆盖掉当前页面,欺骗用户点击iframe中的恶意内容。 Likejacking通常是针对社交网站的一种攻击手法,攻击者会欺骗用户去点击一个伪造的图标或按钮。如今攻击者已经研究出了大量的方法,来把官方的按钮模仿的惟妙惟肖。 Clickjacking技术首先是由Jeremiah Grossman 和 Robert Hanson在2008年提出的,而如今这种依附于JS的攻
FB客服
2018/02/01
2K0
Hijack攻击揭秘
防御点击劫持:X-Frame-Options头的重要性与实践
在网站的世界里,有一种神秘的攻击叫做点击劫持。这就好比你在点击一个看似无害的按钮时,却被引导到执行了一场不为人知的操作。在这篇文章中,我们将揭示缺少 X-Frame-Options 头可能带来的风险,以及如何通过这个小小的“头”来构筑起坚固的网页护盾。
一只牛博
2025/05/30
680
防御点击劫持:X-Frame-Options头的重要性与实践
界面劫持之拖放劫持
在2010的Black Hat Europe大会上,Paul Stone提出了点击劫持的技术演进版本:拖放劫持。由于用户需要用鼠标拖放完成的操作越来越多(如复制粘贴、小游戏等等),拖放劫持大大提高了点击劫持的攻击范围,将劫持模式从单纯的鼠标点击拓展到了鼠标拖放行为。
美创科技
2023/06/27
4500
界面劫持之拖放劫持
前端安全问题之点击劫持
点击劫持也可以称 UI 覆盖攻击。是一种视觉上的欺骗手段,攻击者通过使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,通过调整iframe页面的位置,可以使得伪造的页面恰好和iframe里受害页面里一些功能重合(按钮),以达到窃取用户信息或者劫持用户操作的目的。如下示例(图片来自网络,如有侵权,请留言删除):
前端知知
2022/09/29
1.2K0
前端安全问题之点击劫持
前端开发涉及的Web安全
前端开发涉及常见的Web安全漏洞有:浏览器Web安全,跨站脚本攻击(XSS),跨站请求伪装(CSRF),点击劫持,HTTP劫持,DNS劫持,文件上传漏洞等,以跨站脚本攻击漏洞最为常见,作为前端开发需要了解一些基本的Web安全漏洞和相关的防御措施。
伯爵
2019/10/21
7910
web安全浅析
写这篇文章的初衷,主要由于自己所负责的项目有这方面的需求,就简要提一提web安全方面的一些知识 一.web安全的兴起 web攻击技术经历几个阶段 a.服务器
lyb-geek
2018/03/27
1.8K0
web安全浅析
web之攻与受(劫持与注入篇)
劫持与注入,怎么有种涩涩的感觉。确实,好多时候被攻击都是跟好色有关。当然,好色并不是罪,但即便好色也得注意上网环境的安全。
一粒小麦
2019/09/09
1.5K0
web之攻与受(劫持与注入篇)
点击劫持(ClickJacking)漏洞挖掘及实战案例全汇总
点击劫持(Click Jacking)是一种视觉上的欺骗手段,攻击者通过使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,通过调整iframe页面的位置,可以使得伪造的页面恰好和iframe里受害页面里一些功能重合(按钮),以达到窃取用户信息或者劫持用户操作的目的。
Jayway
2019/09/29
11.3K0
点击劫持(ClickJacking)漏洞挖掘及实战案例全汇总
Web Security 之 Clickjacking
在本节中,我们将解释什么是 clickjacking 点击劫持,并描述常见的点击劫持攻击示例,以及讨论如何防御这些攻击。
凌虚
2021/03/19
1.8K0
Web Security 之 Clickjacking
CSRF攻击与防御
跨站请求伪造(Cross-site request forgery)简称为 CSRF。这种攻击方式很奇特,它是伪造用户的请求发动攻击的,在 CSRF 攻击过程中,用户往往在不知情的情况下构造了网络请求。
多云转晴
2020/07/10
2K0
实验 | 使用手机微信配合点击劫持漏洞进行钓鱼
钓鱼攻击一般指钓鱼式攻击。钓鱼式攻击是指企图从电子通讯中,通过伪装成信誉卓著的法人媒体以获得如用户名、密码和信用卡明细等个人敏感信息的犯罪诈骗过程。
FB客服
2021/08/24
6550
前端安全知识
xss: 跨站脚本攻击(Cross Site Scripting)是最常见和基本的攻击 WEB 网站方法,攻击者通过注入非法的 html 标签或者 javascript 代码,从而当用户浏览该网页时,控制用户浏览器。
三毛
2018/08/30
6660
前端安全知识
前端安全编码规范
随着互联网高速的发展,信息安全已经成为企业重点关注焦点之一,而前端又是引发安全问题的高危据点,所以,作为一个前端开发人员,需要了解前端的安全问题,以及如何去预防、修复安全漏洞。下面就以前端可能受到的攻击方式为起点,讲解web中可能存在的安全漏洞以及如何去检测这些安全漏洞,如何去防范潜在的恶意攻击。
coder_koala
2020/12/07
1.5K0
前端安全编码规范
前端安全问题之-点击劫持
点击劫持(ClickJacking)是一种视觉上的欺骗手段。 一是攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,此时用户将在不知情的情况下点击透明的iframe页面; 二是攻击者使用一张图片覆盖在网页,遮挡网页原有位置的含义; iframe解决方法 使用一个HTTP头——X-Frame-Options。X-Frame-Options可以说是为了解决ClickJacking而生的,它有三个可选的值: DENY:浏览器会拒绝当前页面加载任何frame页面; SAMEOR
游魂
2018/06/08
8010
BWAPP之旅_腾旅通app
前期准备 BWAPP下载 BWAPP玩法 参考这个下载文件 bWAPP直接下载安装包,解压后,到虚拟机里直接打开文件夹,就可以看到vmx文件,点开后,就打开啦, 在物理机或者虚拟机里输入: http://[ip]/bWAPP/login.php ip从bee-box的终端里ifconfig得到
全栈程序员站长
2022/11/09
1.5K0
BWAPP之旅_腾旅通app
一种结合了点击劫持、Self-XSS、复制粘贴劫持的新型XSS攻击
XSS劫持(XSSJacking)是由Dylan Ayrey所提出的一种新型XSS攻击,可窃取受害者的敏感信息。 XSS劫持需要其他三种技术配合使用,分别是点击劫持,粘贴劫持以及Self-XSS,甚至还需要一些社会工程学的帮助,因此这种攻击只能在那些同时有存储型XSS漏洞或是CSRF漏洞漏洞的网站上执行。 XSS劫持攻击的必要条件 要构成一个XSS劫持攻击有以下几种必要条件: 1、目标网站必须有点击劫持漏洞 2、Self-XSS 3、粘贴劫持 点击劫持,是一种将受害者引向黑客所设计好的圈套的欺骗手段。 当受
FB客服
2018/02/23
2.6K0
一种结合了点击劫持、Self-XSS、复制粘贴劫持的新型XSS攻击
深入解析XXS攻击
XXS攻击是一种注入恶意脚本代码到网页中的攻击手段。攻击者通过在Web应用中注入JavaScript或其他恶意脚本,使得用户在访问受影响页面时,这些脚本被执行。这可能导致用户数据被窃取、会话劫持,以及其他安全漏洞的利用。
GeekLiHua
2025/01/21
1860
浅谈前端安全
安全问题的分类 按照所发生的区域分类 后端安全问题:所有发生在后端服务器、应用、服务当中的安全问题 前端安全问题:所有发生在浏览器、单页面应用、Web页面当中的安全问题 按照团队中哪个角色最适合来修复安全问题分类 后端安全问题:针对这个安全问题,后端最适合来修复 前端安全问题:针对这个安全问题,前端最适合来修复 综合以上 前端安全问题:发生在浏览器、前端应用当中或者通常由前端开发工程师来对其进行修复的安全问题 浏览器安全 同源策略 是一种约定,是浏览器最核心也最基本的安全功能,限制了来自不同源的docum
pitaojin
2018/05/25
4.9K0
相关推荐
点击劫持漏洞的学习及利用之自己制作页面过程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档