# 点击劫持攻击是什么样的？点击劫持的类型有哪些？

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/3647.html | 发布：2022-01-07 | 更新：2022-03-24 | 分类：IDC云库

您是否曾经遇到过一个看起来很诱人的链接，并且您想提前点击并查看其中的更多内容？此类链接、游戏和其他事物起初看起来很诱人，但事实证明它们对您来说是危险的。

您是否曾经遇到过一个看起来很诱人的链接，并且您想提前点击并查看其中的更多内容？此类链接、游戏和其他事物起初看起来很诱人，但事实证明它们对您来说是危险的。使用这种会让您想点击它的误导性链接被称为“点击劫持”。

 

点击劫持是一种攻击，其中用户被诱骗点击网站或任何页面元素，而不是他/她的意图。该术语源自“点击劫持”，该技术通过在受信任的网站上隐藏可疑内容来在网站上使用。也可以通过将特定页面放在可见页面的顶部来完成。当用户点击这个可视化页面时，他们认为它只是一个标准页面，但实际上它是另一回事。

 

![点击劫持攻击是什么样的？点击劫持的类型有哪些？](https://www.mfisp.com/wp-content/uploads/2021/12/2021121506315230.jpg)

 

用户实际上位于该页面的特定位置，这将导致触发可疑操作。它可以在社交媒体页面上包含虚假点赞，以便攻击者可以从被点击劫持的用户的银行账户中提取所有资金。

 

许多此类点击劫持攻击充分利用了基于 HTML iframe 的漏洞。安全方法主要涉及页面框架预防。我们将了解点击劫持是如何完成的，我们如何避免它，以及为什么这种威胁很快就会消失。点击劫持被定义为“混淆代理问题”的一个例子，其中系统被欺骗而滥用了过多的授权。

 

**点击劫持攻击是什么样的？**

 

点击劫持攻击的最常见方法之一是向用户展示浏览器中两个隐藏网页的混合内容，以及点击特定位置的额外激励，以启动点击劫持操作。然后，黑客会将未受保护的目标网站加载到 HTML iframe 中，将其设置为透明版本，然后将 iframe 放置在为在某些合适的位置提取点击而创建的可疑网页中。

 

如果我们举一个例子，我们会在查看某些特定网页时看到几个与浏览器相关的游戏。这些游戏都是以弹窗的形式展示的，点击后会说玩这个可以赢现金奖励或奖品等，看起来很诱人，会以弹窗的形式展示游戏后台页面，实际目标网站可以是您通常使用的银行应用程序。

 

如上所述，它也可以是覆盖在透明框架上的电子商务网站。然后，黑客将在与目标站点的控件相同的位置创建一个带有大量点击选项的游戏站点。当您单击这些项目时，用户会单击黑客希望他们单击​​的那些目标控件，从而导致潜在的财务后果。

 

根据所使用的网站，用户会在不知不觉中发送正面评价。它可以包括喜欢 Facebook 页面、给予他们积极的想法、授权 Facebook 应用程序访问您的数据、使用单点登录登录，甚至使用单击购物应用程序为黑客购买昂贵的物品。

 

如果将其与拖放技术结合使用，黑客将诱使用户填写表单字段、填写 CAPTCHA 等。在这种情况下，结构上准备好的与游戏的交互将导致用户不体面地进行拖放操作。对不可见对象进行删除操作并将其放置在表单字段上。因此，用户在导航到这些未知页面时必须保持警惕。

 

**点击劫持的历史**

 

点击劫持的第一个实例是在 2002 年确定的，当时一个例子指出可以在网页上加载透明层。它会影响用户的输入，而他们不会注意到任何事情。这个实例被认为是次要的，直到 2008 年才被作为一个重大问题而在很大程度上被忽略。

 

Web 应用程序安全专家 Robert Hansen 和 Jeremiah Grossman 发现 Adob​​e Flash Player 可能会被点击劫持。它还允许黑客在用户事先不知情的情况下访问计算机。

 

“clickjacking”一词是由这两位专家创造的，它是“click”和“jacking”这两个词的组合。不久之后就报道了这种性质的类似攻击，这使得该术语在其他应用程序安全专家的脑海中产生了相关性。以前，这些攻击被称为“UI 纠正”，但后来又恢复为点击劫持。

 

**点击劫持攻击的变种**

 

点击劫持不是指一次单一的攻击；根据旧术语，它包含一个相当广泛的攻击向量和策略系列，称为“UI 纠正攻击”。根据隐藏内容的利用，这些攻击可以分为两个部分。这些隐蔽的攻击是最受欢迎的攻击之一。在不可见的 iframe 中集成页面是这里最常用的策略之一。基于隐藏内容的一些其他类型的点击劫持包括，

 

**全透明叠加**

 

这就是上面提到的实例中描述的方法。合法页面也称为工具页面，将覆盖或覆盖在结构上创建的可疑网页上。然后在不可见的 iframe 上设置工具页面，并通过增加 z-index 值将其放置在可见页面上。

 

z-index 指定元素的堆栈顺序，最常出现在 CSS 中。使用全透明覆盖识别的最著名案例之一是针对 Adob​​e Flash 插件设置。它诱使用户访问 Flash 动画以及系统的主摄像头和麦克风。

 

**裁剪**

 

黑客只会从透明页面到目标页面叠加一组特定的控件来演示这种攻击。这意味着隐藏带有不可见链接的按钮，以确保它执行与预期不同的行为，所有这些都取决于攻击的目标。攻击模式还包括使用伪造指令隐藏文本标签，使用不准确的命令更改按钮。

 

它甚至可能涉及用恶意和不正确的信息完全隐藏整个页面，除非只有一个原始按钮。这些提到的每一种行为都属于裁剪范围。

 

**伪装叠加**

 

伪装覆盖是第一个可操作的点击劫持实例。黑客创建了一个包含可疑信息的 1x1 像素 iframe，并将其放置在光标下方。它成功地将它从用户的视图中隐藏起来，如果您使用光标进行任何点击，它将在该可疑页面上注册用户。

 

**单击事件丢弃**

 

该方法涉及在前台显示的合法页面，使其成功隐藏其背后的可疑页面。然后，黑客将峰值处的 CSS 指针事件属性设置为 nil。它会导致所有点击事件直接通过合法的屏蔽页面。更重要的是，它还会将您直接注册到包含可疑信息的页面。

 

**增加内容替换**

 

使用模糊叠加覆盖目标控件。这个动作只执行几分之一秒或片刻，直到用户点击它，一旦完成，它就会被立即替换。攻击的性质涉及黑客准确预测用户点击的位置，并且不需要任何先前的计算机使用习惯。这听起来很棘手，但它非常简单。

 

攻击者还可以在不利用点击劫持漏洞的情况下插入叠加层。他们有许多选项可以诱使用户点击他们希望他们点击的控件。其中一些技巧包括：

 

**滚动**

 

黑客将从屏幕上部分滚动合法的网络元素或对话框，使用户只能看到一些控件。例如，可以滚动关闭提及警告的对话框，以便用户只能看到“取消”和“确定”按钮。黑客会放置一个非常安全的提示文本，其中会提到您必须单击此按钮才能继续操作，而不是将其作为警告刷掉。

 

**重新定位**

 

这种攻击需要黑客在光标下移动一个真正的对话框。同时，用户会被一些看起来非常无害的其他项目分散注意力。黑客还使用这些项目通过有目的地重新定位来分散用户对主要事物的注意力。

 

如果此操作有效，用户将在意识到页面上的某些内容已更改之前自动单击替换的控件。这个操作和快速的内容替换过程比较相似，黑客会把对话移回原来的位置，避免被识别。

 

**拖放**

 

虽然许多点击劫持攻击都将注意力集中在点击拦截上，但可以对拖放漏洞进行编程以诱骗用户执行一系列活动。它可以包括通过将不可见文本拖入隐藏文本框或向黑客公开机密个人信息来完成 Web 表单。

 

**其他不同形式的攻击**

 

用户和网页元素动态交互，这可以通过 DOM、JavaScript 和 CSS 的融合来实现。这些工具为攻击者提供了多种选项来诱使用户执行各种不需要的活动。这是因为点击劫持攻击倾向于通过使用控件和其他误导性信息来利用用户的信任。这些有时很难检测到，并且每一步都有可能发生新的攻击。

 

**如何停止点击劫持？**

 

大量的点击劫持攻击涉及在某个时间点将目标网页设置到 iframe 中。因此，所有的预防方法都不允许框架。传统的遗留解决方案使用客户端脚本从这些框架中拆分页面。尽管如此，现代方法和安全方法主要依赖于设置 HTTP 安全标头来指定特定的成帧措施。其中一些措施如下：

 

**框架破坏或框架破坏**

 

在支持新的 HTTP 标头变得流行之前，许多网站开发人员不得不部署专门的 framekiller 或 framebuster 脚本来阻止他们的页面被“iframed”。第一个杀帧脚本是顶级的。这是为了确保这是现有页面。但是这些脚本可以很容易地从外部框架中阻止或可以绕过。

 

因此，开发了一个更独特和更全面的解决方案。尽管如此，仍有几种方法可以绕过最详细的帧杀手，并且在您希望为旧版浏览器提供基本安全性的情况下，必须使用这些脚本。 OWASP 官方提倡的这种方法是屏蔽 HTML 文档主体，只有在适当验证页面不是“iframed”后才使其可见。

 

**X-Frame-Options**

 

目前最好的解决方案之一是 X-Frame-Options (XFO)。它是用于服务器响应的 HTTP 响应标头。它由 Microsoft 为 Internet Explorer 8 引入，然后在 RFC 7034 中正式化。XFO 标头用于标识页面是否可以集成到 iframe、嵌入或对象元素中。 XFO 支持三个指令。

 
 
- 阻止可能的框架尝试的矛盾 
- 使用同源元素允许按同一来源的页面进行框架化。 
- 使用 allow-from 元素允许来自指定 URL 的页面框架 

 

但是许多浏览器不支持 allow-from 元素，包括 Safari 和 Chrome。因此，如果要识别来源，则需要使用 CSP 或内容安全策略。为了防止反成帧，您需要在服务器标头中添加 X-Frame-Options: deny 或 X-Frame-Options: same-origin。

 

**具有框架祖先的内容安全策略**

 

创建 CSP HTTP 标头是为了防止 XSS（跨站点脚本）和其他攻击。此外，它还提供了一个 frame-ancestors 指令，用于逐项列出允许在 iframe 中集成页面的源。它甚至可以在对象、嵌入或小程序元素中集成页面。

 

您可以指定任意数量的源和其他受支持的源值。这包括主机 IP 甚至地址、方案类型、“self”以逐项列出当前文档的来源，并使用“none”来停止允许嵌入程序。

 

所有这些选项都为用户在复杂的部署场景中进行源定义提供了很大的灵活性。对于基本安全性，“self”和“none”就足够了。前者相当于XFO的同源指令，而后者类似于'deny'是XFO。

 

虽然它可能无法为您提供有关点击劫持的完整保证，但 XFO HTTP 标头是提高一般网站灵活性的通用方式。它不仅消除了基本的点击劫持尝试，还消除了许多其他弱点。CSP 指令还应为您提供与 XFO 等效的保护，但后者也被广泛接受和推荐，即使它现在已被弃用。

 

如果两个标头都存在，CSP 将指向最重要的帧祖先，并且 XFO 将被拒绝。但在一些旧浏览器（如 Chrome 40 和 Firefox 35）中的操作则相反。无论我们选择什么措施，您都可以使用 Netsparker 检查您访问的网站是否有 XFO 和 CSP 标头。您甚至可以确保所有安全策略都到位并且在所有网页上保持一致。

 

除了服务器和客户端的反帧方案，由于当今浏览器内置的安全措施，用户可以避免点击劫持。网页渲染涉及多层检查，以确保界面按用户期望运行。该过程还包括反点击劫持算法，该算法将对抗上述重新定位和滚动攻击。浏览器还将接收选项以阻止不必要的弹出窗口和其他可疑网页行为，并通知用户发生了恶意活动。

 

**点击劫持——一种普遍存在的威胁**

 

XFO 不是点击劫持问题的永久解决方案。它被浏览器供应商和 CSP 的 frame-ancestors 指令普遍采用。该指令为相同的方法提供了更灵活的解决方案。XFO 和 CSP 的标头都可以提供安全性，以抵御框架覆盖和其他流行的点击劫持攻击的威胁。框架祖先可能会在未来观察到普遍接受，以防止黑客猖獗使用 iframe。

 

了解点击劫持不仅与 iframe 相关，这一点也很重要。这也是关于破坏用户的信任并误导他们关于他们在浏览器中看到的内容。需要注意的是，与网络相比，大多数浏览流量来自移动浏览器。因此，创建伪造用户界面的可能性很大，仅保护 Web 浏览器是不够的。

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
