前端漏洞(下)- ClickJacking漏洞
漏洞复现目的:熟悉 ClickJacking 漏洞 原理
漏洞介绍:
Clickjacking(点击劫持)是一种跨浏览器攻击技术,由安全专家Robert Hansen与Jeremiah Grossman于2008年在OWASP NYC AppSec大会上首次公开披露。其原理是通过恶意网页将透明界面元素覆盖在诱饵内容上,诱导用户点击隐藏的按钮或链接,从而劫持用户操作。该漏洞影响IE、Firefox、Safari等主流浏览器及Adobe Flash,攻击者可利用DHTML技术绕过防框架代码防护,实现如恶意软件安装、敏感操作触发等行为 [1]。
搭建环境:docker 环境
命令:yml 文件目录下 执行 docker-compose up -d 直接拉取镜像
环境说明:
该题目以HTML文件的形式展示,可以将ClickJacking.html文件保存至本地来复现
实战指导
打开ClickJacking.html文件, 通过修改opacity的值即可观察到页面的变化,从而完成漏洞复现。
1、 ClickJacking 漏洞原理图
2、在浏览器打开ClickJacking.html文件,观察到页面存在其他内容
3、修改opacity的值再次观察
4、发现按钮变淡,其他内容清晰
5、当opacity的值为0时,浮层将会不可见,此时用户的操作都在 <iframe src="http://www.example.com" scrolling="no"></iframe> 页面上触发的
6、漏洞防御
(1)X-Frame-Options 头:在HTTP响应头中添加
X-Frame-Options
,可以阻止页面被嵌入到<frame>
、<iframe>
或者<object>
等标签中。(2)Content Security Policy (CSP):通过设置CSP的
frame-ancestors
指令,可以限制哪些域可以嵌入你的页面。例如,Content-Security-Policy: frame-ancestors 'self';
表示只有同源页面可以嵌入此页面。(3)JavaScript防御:在客户端使用JavaScript检测是否被嵌入在一个
<iframe>
中,如果是,则可以采取一些措施,如重定向到另一个页面或显示警告信息