什么是点击劫持?

阅读 1369 收藏 0 点赞 0 评论 0

什么是点击劫持漏洞,它对您有何影响?

“UI 修复”是“点击劫持”的一个子类别。点击劫持是一种有害的做法,它涉及诱骗网络用户参与他期望处理的事情之外的事情。在大多数情况下,点击劫持攻击只是通过点击网页元素来执行。当用户被诱骗点击隐藏网页上的一个元素或伪装成另一个元素时,就会发生点击劫持攻击。简而言之,任何用户错误单击意外网页元素的攻击都称为 Clickjacking。

您可能会说,我们在网页上呈现的任何内容都是在可见页面之上的另一个半透明页面。创建“点击劫持”一词是为了描述在可信赖网站上覆盖有害材料或在在线页面上的可见页面上放置透明页面的做法。

虽然受害者与看似无辜的网站互动,但这种可能单独使用或与其他攻击结合使用的攻击可能会传输不需要的命令或泄露个人信息。

点击劫持攻击在实践中的样子

Clickjacking 最常见的方法是在浏览器窗口中向用户显示两个叠加的网页的组合,以及某种形式的诱导点击特定位置。攻击者首先将易受攻击的目标网站加载到 iframe 中,将其设置为完全透明,并将其放置在旨在引发特定位置点击的恶意网页前面。

考虑一个有趣的基于浏览器的游戏,它出现在弹出窗口中并为获胜者提供奖励或令人兴奋的材料。游戏可能显示为背景页面,预期的在线应用程序(例如银行或电子商务网站)叠加在其顶部的透明框架中。攻击者设计游戏页面,使可点击的东西与所选控件在目标站点上的相同位置。当用户尝试点击游戏内物品时,他们会触摸易受攻击的网页上的隐形按钮,这可能会产生重大影响。根据网站的不同,受害者可能会无意中给出 5 星评价,例如有问题的 Facebook 页面、提供 Facebook 应用程序的权限、通过 SSO 技术登录或利用一键购物将昂贵的东西转移给攻击者。

该攻击与拖放策略结合使用时,可能会欺骗用户填写 Web 表单或验证码中的文本字段。在这种情况下,由于精心策划了与游戏的交互,用户无意中将内容从看不见的页面拖放到表单域中。

点击劫持攻击的类型

点击劫持是一组攻击路线和策略的综合名称,统称为 UI 补救攻击。基于叠加材料的使用,攻击可以分为两类。基于覆盖的攻击是最普遍的,最常见的技术策略是将网站嵌入到不可见的 iframe 中。

有几种不同类型的基于覆盖的点击劫持 &mins;

完全透明覆盖

这种方法被用于最早的备受瞩目的点击劫持攻击之一,该攻击诱骗用户允许 Flash 动画通过 Adobe Flash 插件设置页面访问计算机的摄像头和麦克风。

裁剪

在这种技术中,攻击者只从透明页面中选择几个控件来覆盖在可见页面上。根据攻击的目标,这可能需要隐藏带有不可见超链接的按钮,以使它们执行与预期不同的操作,用误导性说明替换文本标签,或者用误导性内容覆盖整个合法页面,只留下一个原始按钮暴露.

隐藏覆盖

这是第一个演示的 Clickjacking 方法。攻击者将携带恶意内容的 1x1 像素 iframe 放置在鼠标指针后面,将其隐藏起来,但会记录受感染页面上的任何点击。

合法页面显示在最前面,完全覆盖后面的恶意页面,点击事件被丢弃。攻击者将顶部的 CSS pointer-events 值更改为 none,强制点击事件通过合法的页面覆盖“丢弃”,并且仅在下面的恶意页面上注册。

快速内容替换

不透明的覆盖覆盖了目标控件,这些控件在几分之一秒内被移除以注册点击,然后被替换。这需要攻击者预测受害者点击的确切时间,但如果您对计算机用户习惯和心理有所了解,这比听起来容易。

即使点击劫持漏洞不用于植入覆盖,攻击者也有几种技术可以说服用户点击意外控件 -

滚动

攻击者将真正的对话框或其他网页元素部分滑出屏幕,从而使用户的某些控件变得模糊。例如,警告对话框可能会从屏幕上滑出,只留下 OK 和 Cancel 按钮可见,攻击者放置无害的提示文本,使其看起来好像按钮应用于此消息而不是警告。

重新定位

要执行此攻击,攻击者必须快速重新定位光标下的可信对话(或另一个 UI 元素)。同时,受害者全神贯注于点击其他看似无害的元素。如果这成功了,用户会在意识到任何改变之前不自觉地点击被替换的控件。为了防止检测,攻击者可能会在点击后迅速将对话重新定位,类似于快速内容替换。

拖放

虽然大多数点击劫持攻击都集中在拦截点击上,但拖放漏洞可用于欺骗用户执行诸如通过将看不见的文本拖到不可见的文本字段中来填写在线表单或向攻击者提供敏感的个人信息等操作。

如何避免成为点击劫持攻击的受害者?

有两种方法可以避免点击劫持攻击 -

1. 客户端保护 2. 服务器端安全(X-Frame-Options) 客户端安全

破帧

Frame Busting 是最常见的客户端策略,用于保护网页免受Clickjacking.This接近,防止网站在框架内加载时工作。

在这种方法中,用户浏览器的 JavaScript 被用来防止自己嵌入到 iframe 中并退出它。

当页面加载时,这个 JS 代码会检查页面的域是否与浏览器匹配domain.If,没有问题;如果没有,它将退出框架并在浏览器中加载站点,而不是尝试在 iframe 中加载它。

X 框架选项

Microsoft 已经构建了一个基于标头的保护系统,作为客户端帧破坏代码的替代方案。

新的“X-FRAME-OPTIONS”标头由服务器在 HTTP 回复中提供,用于指示哪些网页不应该被加框。尽管“X-FRAME-OPTIONS”是大多数浏览器已经实现的合理解决方案,但该策略存在重大缺陷,可能导致在任何情况下利用点击劫持漏洞。

标题 X-Frame-Options 是答案的一部分。开发人员可能会使用它来防止他们的网站被点击劫持。它的值可以调整为以下任何值,以指示是否应允许浏览器在 iframe 中显示网站:

DENY X-FRAME-OPTIONS 如果使用 DENY,则任何站点都无法在框架中加载页面。

SAMEORIGIN X-FRAME-OPTIONS 如果您提供 SAMEORIGIN,您仍然可以在框架中使用该页面,只要站点将其放入框架中与交付页面的站点相同

允许来自 URI X-FRAME-OPTIONS:如果您指出这一点,则仅提供的 URI 可用于在框架中显示站点。

评论列表


问题


面经


文章

微信
公众号

扫码关注公众号