《白帽子讲 Web 安全:点击劫持》

目录

摘要:

一、点击劫持概述

二、点击劫持的实现示例:诱导用户收藏指定淘宝商品

案例

构建恶意页面:

设置绝对定位和z - index:

 控制透明度:

三、其他相关攻击技术

3.1图片覆盖攻击与 XSIO

3.2拖拽劫持与数据窃取

3.3Flash 劫持技术

3.4Filejacking 劫持攻击

四、浏览器的防御机制

4.1.原生防御策略

4.2.多维度防御体系

4.2.1.客户端防御 Frame Busting

Frame Busting 原理和绕过

绕过方式:

4.2.2.服务端头信息防御

(1)X - Frame - Options

(2)CSP:frame - ancestors 指令

(3)Cookie 的 samesite 属性

4.3.3. 复合防御策略

总结


摘要:

在 Web 安全的领域中,点击劫持(Clickjacking)是一种通过视觉欺骗诱导用户点击隐藏元素的攻击方式,是一种常见且具有潜在危害的攻击手段。吴翰清和叶敏所著的《白帽子讲 Web 安全》一书中对点击劫持进行了全面而深入的讲解,下面就来详细总结这部分内容。


一、点击劫持概述

点击劫持,英文名为 Clickjacking,也被称为 UI - 覆盖攻击。

它首次出现在 2008 年,由互联网安全专家罗伯特・汉森和耶利米・格劳斯曼首创。点击劫持(Clickjacking)是一种视觉上的欺骗手段,攻击者通过透明的 iframe 或其他隐藏元素通过覆盖不可见的框架来诱使用户在不知情的情况下执行某些操作。表面上受害者点击的是他们所看到的网页,但实际上点击的是被黑客精心构建的另一个置于原网页上面的透明页面。

例如:用户可能在浏览一个看似正常的网页并点击某个按钮时,却在不知情的情况下触发了另一个页面上的恶意操作,如转账、下载恶意软件等。


二、点击劫持的实现示例:诱导用户收藏指定淘宝商品

书中以诱导用户收藏指定淘宝商品为例,详细讲解了点击劫持的实现过程。攻击者创建一个页面,在其中使用 iframe 嵌入目标淘宝商品页面。为了实现劫持效果,需要注意以下几点:

  • 绝对定位:使用绝对定位来控制 iframe 的位置,确保其能够精确覆盖在用户正常浏览的页面之上。
  • z - index 属性:将 z - index 设置得足够大,使劫持页面的 iframe 处于所有页面的最上层,这样用户的点击操作会首先作用在 iframe 上。
  • 透明度控制:通过 opacity 属性控制页面的透明度,使 iframe 变得透明或半透明,让用户无法察觉其存在,从而在不知不觉中执行收藏商品等操作。

案例

假设攻击者想要诱导用户收藏指定的淘宝商品,他们可以通过以下步骤来实现点击劫持:

构建恶意页面

攻击者创建一个网页,在这个网页中使用<iframe>标签将淘宝商品页面嵌入其中。例如:

<iframe src="https://detail.tmall.com/item.htm?id=123456"></iframe>

这里的src属性指向要劫持的淘宝商品页面链接。

设置绝对定位和z - index

为了使嵌入的<iframe>能够覆盖在当前页面的上方,需要对其进行绝对定位,并设置足够大的z - index值。例如:

iframe {

position: absolute;

top: 0;

left: 0;

width: 100%;

height: 100%;

z - index: 9999;

}
  • 通过position: absolute将<iframe>脱离文档流,使其可以自由定位在页面的任何位置;
  • top: 0和left: 0
  • 将其定位在页面的左上角;width: 100%和height: 100%使其覆盖整个页面;
  • z - index: 9999确保它位于所有页面元素的最上层。

 控制透明度

为了让用户难以察觉<iframe>的存在,需要将其透明度设置为合适的值。

例如:

iframe {

opacity: 0.5;

}

这里将透明度设置为 0.5,使<iframe>呈现半透明状态,既不会完全看不见,又不会过于明显,从而增加用户误点击的可能性。用户在浏览恶意页面时,以为点击的是当前页面的内容,实际上点击的是被<iframe>覆盖的淘宝商品页面上的收藏按钮,进而在不知情的情况下完成了商品收藏操作。


三、其他相关攻击技术

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值