点击劫持(ClickJacking)的小科普

点击劫持是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情 的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。

在这个test.html中有一个button,如果iframe完全透明时,那么用户看到的是:

 
用户看到的按钮

当iframe半透明时,可以看到,在button上面其实覆盖了另一个网页:

 
实际的页面,按钮上隐藏了一个iframe窗口

覆盖的网页其实是一个搜索按钮:

 
隐藏的iframe窗口的内容

当用户试图点击test.html里的button时,实际上却会点击到iframe页面中的搜索按钮。这样,就完成了一次点击劫持的攻击。

下面来看一个更为严重的ClickJacking攻击案例。攻击者通过Flash构造出了点击劫持,在完成一系列复杂的动作后,最终控制了用户电脑的摄像头。

目前Adobe公司已经在Flash中修补了此漏洞。攻击过程如下:

首先,攻击者制作了一个Flash游戏,并诱使用户来玩这个游戏。这个游戏就是让用户去点击”CLICK”按钮,每次点击后这个按钮的位置都会发生变化。

 
演示点击劫持的Flash游戏

在其上隐藏了一个看不见的iframe:

 
Flash上隐藏的iframe窗口

游戏中的某些点击是有意义的,某些点击是无效的。攻击通过诱导用户鼠标点击的位置,能够完成一些较为复杂的流程。

 
某些点击是无意义的
 
某些点击是有意义的

最终通过这一步步的操作,打开了用户的摄像头。

 
通过点击劫持打开了摄像头

相关技术参考文章:《基于QtWebKit的DOM XSS检测技术》《CSRF漏洞详细说明

本文转自网络网络安全攻防研究室(www.91ri.org)信息安全小组收集整理,转载请注明出处。