目录
摘要:
在 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>覆盖的淘宝商品页面上的收藏按钮,进而在不知情的情况下完成了商品收藏操作。

最低0.47元/天 解锁文章
1195

被折叠的 条评论
为什么被折叠?



