当前位置: 首页 > news >正文

#渗透测试#SRC漏洞挖掘#深入挖掘CSRF漏洞02

 免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。

目录

一、CSRF漏洞

1.理解应用:

2.查找没有使用CSRF令牌的敏感操作:

3.重放攻击:

4.构建并测试CSRF攻击:

5.验证:

二、 同源策略

一、同源策略

二、CSRF攻击与同源策略

三、处理CSRF攻击与同源策略的方法

三、CSRF能出现高危操作的点

一、涉及资金交易的操作

二、涉及用户信息修改的操作

三、涉及权限管理的操作

 四、CSRF配合XSS的攻击场景

 五、csrf与oauth2.0的危害

1、授权码泄露:

2、CSRF攻击:

在OAuth 2.0授权码流程中,客户端应用程序通过授权码来获取访问令牌。如果这个过程没有妥善保护,可能会遭受CSRF攻击,导致用户的授权信息被窃取。3、客户端安全问题:

六、csrf 在post 和get 中的利用

1、GET请求中的CSRF利用

2、POST请求中的CSRF利用


一、CSRF漏洞

渗透测试以寻找CSRF漏洞时,你可以按照以下步骤进行:

1.理解应用:

理解应用程序的工作原理是至关重要的。这包括理解应用程序的各个部分如何相互交互,理解它的请求和响应,理解使用的技术堆栈等。所有这些信息都可能会帮助你找到CSRF漏洞。

2.查找没有使用CSRF令牌的敏感操作:

要找到CSRF漏洞,你需要寻找那些没有使用CSRF令牌(或者使用方式不正确)的敏感操作。这可能包括更改态码,更改用户信息、创建新的用户帐户等。

3.重放攻击:

你可以尝试重放攻击,看看是否可以在不包含CSRF令牌的情况下重复执行操作。如果可以,那么这就是一个潜在的CSRF漏洞。

4.构建并测试CSRF攻击:

一旦你找到了一个潜在的CSRF漏洞,你就可以构建一个CSRF攻4.击来测试它。这通常涉及创建一个将执行恶意操作的HTML页面或脚本。

5.验证:

最后,你需要验证攻击是否成功。这可能涉及检查是否真的进行了恶意操作,或者查看是否接收到了预期的响应。

二、 同源策略

一、同源策略

同源策略(Same-Origin Policy)是浏览器的一种安全机制,它限制了一个源(协议、域名和端口)的文档或脚本如何与另一个源的资源进行交互。这意味着,默认情况下,一个源下的脚本不能读取或修改另一个源下的文档。

二、CSRF攻击与同源策略

CSRF攻击依赖于浏览器自动发送Cookie的能力,而同源策略正是为了防止这种攻击而设计的。然而,同源策略并不能完全阻止CSRF攻击,因为以下原因:

  1. Cookie的存在:即使两个源不同,如果用户的浏览器已经向第一个源(例如网站A)发送了Cookie,那么在用户访问第二个源(例如恶意网站B)时,浏览器会自动附带上这些Cookie。

  2. 跨域请求:当恶意网站B发送一个请求到网站A时,如果网站A没有实施额外的安全措施,它可能会处理这个请求,因为请求中包含了有效的Cookie。

三、处理CSRF攻击与同源策略的方法

1. 使用CSRF Token

  • 原理:在用户的会话中生成一个唯一的Token,并在每个表单或请求中包含这个Token。

  • 实现:用户提交表单时,服务器验证表单中的Token是否与会话中存储的Token匹配。

  • 效果:即使请求来自不同源,由于Token的验证,服务器也能区分请求是否由用户发起。

2. 验证Referer头

  • 原理:检查HTTP请求头中的Referer字段,确保请求来自信任的源。

  • 限制Referer头部可以被用户修改,因此这不是一个完全可靠的方法。

3. 使用CORS(跨源资源共享)

  • 原理:通过设置CORS头部,允许来自不同源的请求。

  • 实现:在服务器响应中设置Access-Control-Allow-Origin头部。

  • 限制:CORS允许跨源请求,如果不当配置,可能会引入安全风险。

4. 双重提交Cookie

  • 原理:在客户端请求中同时提交两个Cookie,一个用于客户端存储,另一个用于服务器验证。

  • 实现:客户端发送两个Cookie,服务器验证这两个Cookie是否匹配。

  • 效果:这种方法可以减少CSRF攻击的风险,但需要用户端和服务器端的额外支持。

5. 使用HTTP Only和Secure标志的Cookie

  • 原理:设置Cookie的HttpOnly标志可以防止JavaScript访问Cookie,而Secure标志确保Cookie只通过HTTPS传输。

  • 效果:这可以减少通过XSS攻击窃取Cookie的风险。

三、CSRF能出现高危操作的点

一、涉及资金交易的操作
  • 转账操作:当银行或金融类网站存在CSRF漏洞时,攻击者可利用用户已登录状态,伪造转账请求。例如,用户登录银行网站A后,若访问恶意网站B,B网站中的恶意代码(如利用img的GET请求方式或者构造自动提交的POST表单)可在用户不知情的情况下,以用户身份向银行网站A发送转账请求,从而导致用户资金被盗转,造成财产损失。

  • 支付操作:在电商平台上,如果存在CSRF漏洞,攻击者可以以用户名义进行商品购买支付。例如,用户登录电商网站并已授权支付功能,攻击者可伪造请求来完成支付流程,使受害者在未同意的情况下购买商品,遭受经济损失。

二、涉及用户信息修改的操作
  • 修改密码:如果网站在修改密码功能处存在CSRF漏洞,攻击者可以构造恶意请求修改用户密码。一旦成功,攻击者就可以完全掌控用户账号,获取账号内的所有信息,并可能进行更多恶意操作,如冒用身份发布信息等。

  • 修改用户资料:例如姓名、联系方式、地址等用户资料的修改。攻击者可利用CSRF漏洞,以用户身份修改这些信息,这可能导致用户隐私泄露,或者被用于进一步的诈骗活动,如修改收货地址以获取用户购买的商品等。

三、涉及权限管理的操作
  • 添加管理员权限:在一些系统中,如果存在CSRF漏洞,攻击者可能以普通用户身份发送伪造请求,为自己或其他恶意账号添加管理员权限。这样攻击者就可以对系统进行更多恶意操作,如篡改系统数据、删除重要信息等。

  • 权限提升:将低权限账号提升为高权限账号,使得攻击者能够访问原本无权访问的功能和数据,从而对系统的安全性和数据完整性造成严重威胁。

 四、CSRF配合XSS的攻击场景

  1. 利用XSS获取CSRF Token:在某些情况下,网站可能会使用CSRF Token来防止CSRF攻击。然而,如果同一网站存在XSS漏洞,攻击者可以通过XSS漏洞注入恶意脚本,窃取用户的CSRF Token。一旦攻击者获得了CSRF Token,他们就可以构造合法的CSRF请求,绕过CSRF防护机制,执行恶意操作。

  2. 增强攻击效果:SS攻击通常局限于在受害者浏览器中执行恶意脚本,而CSRF攻击则可以利用受害者的身份在其他网站上执行操作。当这两种攻击结合在一起时,攻击者可以先通过XSS攻击获取受害者的敏感信息(如CSRF Token、会话ID等),然后利用这些信息发起CSRF攻击,进一步扩大攻击的效果和范围。

 五、csrf与oauth2.0的危害

OAuth 2.0是一种授权框架,用于保护API和资源免受未授权访问。尽管OAuth 2.0本身是为了提高安全性而设计的,但它也可能成为攻击的目标,特别是在实现和使用不当的情况下。OAuth 2.0的相关危害包括:     

1、授权码泄露:

如果授权码在传输过程中被拦截,攻击者可以利用这个授权码来获取访问令牌,从而访问用户的敏感信息。

2、CSRF攻击:
在OAuth 2.0授权码流程中,客户端应用程序通过授权码来获取访问令牌。如果这个过程没有妥善保护,可能会遭受CSRF攻击,导致用户的授权信息被窃取。
3、客户端安全问题:

原生客户端(如移动应用)在授权码模式下,客户端clientID和clientSecret的安全性是无法得到保证的,因此有可能被攻击者利用。为了解决这个问题,OAuth 2.0提供了PKCE(Proof Key for Code Exchange)增强的授权码模式,通过在客户端和授权服务器之间进行交互,确保授权码只能由预先与客户端关联的应用程序使用。

六、csrf 在post 和get 中的利用

1、GET请求中的CSRF利用

GET请求通常是用于从服务器请求数据的,它将所有参数都包含在URL中。由于GET请求的参数是可见的,并且可以很容易地通过链接或图像标签等方式来触发,因此GET请求中的CSRF利用相对较为简单和直接。攻击者可以构造一个恶意URL,并诱使受害者点击该链接,从而触发CSRF攻击。例如,攻击者可以创建一个包含恶意请求的图像标签:

,当受害者加载这个图像时,实际上是在向服务器发送一个GET请求,要求删除用户ID为12345的账户。

2、POST请求中的CSRF利用

POST请求通常是用于向服务器提交数据的,它将参数包含在请求体中。由于POST请求的参数是隐藏的,并且需要通过表单提交或Ajax请求等方式来触发,因此POST请求中的CSRF利用相对较为复杂和隐蔽。攻击者需要构造一个包含恶意请求的表单,并诱使受害者提交该表单,从而触发CSRF攻击。例如,攻击者可以创建一个包含恶意请求的表单:

,当受害者提交这个表单时,实际上是在向服务器发送一个POST请求,要求将1000元转账到账户ID为67890的账户。

GET和POST请求都可以被用来进行CSRF攻击,但它们的利用方式和效果有所不同。GET请求中的CSRF利用相对较为简单和直接,而POST请求中的CSRF利用相对较为复杂和隐蔽。为了有效防范CSRF攻击,开发者需要采取一系列有效的防御措施,包括使用CSRF Token、验证请求来源、使用同源策略以及限制敏感操作的请求方式等。

 未完待续!!!!!

相关文章:

#渗透测试#SRC漏洞挖掘#深入挖掘CSRF漏洞02

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...

基于OpenCV的相机捕捉视频进行人脸检测--米尔NXP i.MX93开发板

本篇测评由优秀测评者“eefocus_3914144”提供。 本文将介绍基于米尔电子MYD-LMX93开发板(米尔基于NXP i.MX93开发板)的基于OpenCV的人脸检测方案测试。 OpenCV提供了一个非常简单的接口,用于相机捕捉一个视频(我用的电脑内置摄像头) 1、安…...

【Node-Red】使用文件或相机拍摄实现图像识别

使用相机拍照实现图像识别 首先需要下载节点 node-red-contrib-tfjs-coco-ssd,下载不上的朋友可以根据【Node-Red】最新版coco-ssd 1.0.6安装方法(windows)文章进行安装。 1、智能识别图片 使用本地文件的形式对图像进行识别 时间戳&…...

【Arcpy】提示需要深度学习框架代码

try:import torchimport arcgis相关库HAS_DEPS True except:HAS_DEPS Falsedef _raise_conda_import_error():arcpy.AddIDMessage("ERROR", 260005)exit(260005)if not HAS_DEPS:_raise_conda_import_error()...

【蓝桥杯 2021 省 B2】特殊年份

题目描述: 今年是 2021 年,2021 这个数字非常特殊, 它的千位和十位相等, 个位比百位大 1,我们称满足这样条件的年份为特殊年份。 输入 5 个年份,请计算这里面有多少个特殊年份。 输入格式 输入 5 行,每行一个 4 位十…...

【云原生开发】namespace管理的后端开发设计与实现

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...

威联通Docker Compose搭建NAS媒体库资源工具NAS Tools

文章目录 一、环境配置1-1 需要的配件1-2 环境安装及配置注意:获取PUID/PGID1-3 目录位置准备总结,这里我们要做5件事备注:Docker无法下载解决办法二、登录配件,进行配件连接和配置2-1 jackett设置2-2 qBittorrent设置!!!设置文件下载地址2-3 jellyfin设置2-4 NASTools设…...

【JAVA基础】MAVEN的安装及idea的引用说明

本篇文章主要讲解,maven的安装及集成在idea中进行构建项目的详细操作教程。 日期:2024年11月11日 作者:任聪聪 所需材料: 1、idea 2024版本及以上 2、maven 3.9.9安装包 3、一个空java springBoot项目,可以使用阿里云…...

【go从零单排】Rate Limiting限流

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 中,速率限制(Rate Limiting)是一种控制…...

解析Eureka的架构

1. 引言 1.1 Eureka的定义与背景 Eureka是由Netflix开发的一个RESTful服务,用于服务发现。它是微服务架构中的一个核心组件,主要用于管理服务的注册和发现。Eureka允许服务提供者注册自己的服务信息,同时也允许服务消费者查询可用的服务&am…...

AI变现,做数字游民

在数字化时代,AI技术的迅猛发展不仅改变了各行各业的生产方式,还为普通人提供了前所未有的变现机会。本文将探讨如何利用AI技术实现变现,成为一名数字游民,享受自由职业带来的便利与乐趣。 一、AI技术的变现潜力 AI技术以其强大…...

linux-vlan

# VLAN # 1.topo # 2.创建命名空间 ip netns add ns1 ip netns add ns2 ip netns add ns3 # 3.创建veth设备 ip link add ns1-veth0 type veth peer name ns21-veth0 ip link add ns3-veth0 type veth peer name ns23-veth0 # 4.veth设备放入命名空间,启动接口 ip link set n…...

前端跨域~简述

前言 :绿蚁新醅酒,红泥小火炉 第一:前端跨域(粗谈概念) 1. 疑惑 当前端请求后端接口不通,浏览器控制台出现类似信息,则需要解决跨域 Access to XMLHttpRequest at ‘http://47.100.214.160:10…...

GIN:逼近WL-test的GNN架构

Introduction 在 图卷积网络GCN 中我们已经知道图神经网络在结点分类等任务上的作用,但GIN(图同构神经网络)给出了一个对于图嵌入(graph embedding)更强的公式。 GIN,图同构神经网络,致力于解…...

NIST密码学未来展望:Naughty Step 上的 SHA-1、3DES 和 SHA-224

1. 引言 NIST 几十年来一直致力于推动密码学标准的发展,2024年10月,其发布了Transitioning the Use of Cryptographic Algorithms and Key Lengths 草案: 概述了 SHA-1(为160位哈希算法) 将在不久的将来退役&#xf…...

go 集成gorm 数据库操作

一、什么是gorm GORM 是一个用于 Go 语言的 ORM(对象关系映射)库,它提供了一种简单而强大的方式来与数据库进行交互。GORM 支持多种数据库,包括 MySQL、PostgreSQL、SQLite、SQL Server 等,并且提供了丰富的功能&…...

进程 线程 和go协程的区别

进程和线程是操作系统中两个重要的执行单元,理解它们的区别对于编程和系统设计非常重要。以下是它们的主要区别: ### 进程(Process) 定义:进程是一个正在执行的程序的实例,具有独立的地址空间。 资源&…...

STM32获取SHT3X温湿度芯片数据

目录 一、概述 二、单次数据采集模式的测量 1、配置说明 2、代码实现方式 三、周期性数据采集模式的测量 1、配置说明 2、代码实现方式 四、完整代码下载链接 一、概述 SHT3X是Sensirion公司推出的一款高精度、完全校准的温湿度传感器,基于CMOSens技术。它提…...

卸载miniconda3

1. 找到miniconda目录&#xff0c;删除。 rm -rf miniconda3/ 2. 编辑bashrc sudo vim .bashrc setup路径改回anaconda3的&#xff0c;注释掉“>>> conda initialize >>>”和"<<< conda initialize <<<"之间的miniconda的语…...

游戏中的设计模式及杂项

概述 如果要做以下游戏功能会用到哪些设计模式。比如创建一个人物角色&#xff0c;这个角色可以装备刀&#xff0c;然后角色可以用刀砍怪物&#xff0c;造成流血。 对于这个游戏功能&#xff0c;可以使用以下设计模式&#xff1a; 工厂模式&#xff08;Factory Pattern&#x…...

Docker网络和overlay的基础讲解

本人发现了两篇写的不错的文章&#xff1a;Docker网络 - docker network详解-CSDN博客&#xff0c;Docker 容器跨主机通信 overlay_docker overlay 网络-CSDN博客 因为这两篇文章中含有大量的例子&#xff0c;新手看起来毫不费力。于是我偷了个小懒&#xff0c;在本篇文章中没有…...

分布式数据库:深入探讨架构、挑战与未来趋势

引言 在数字化时代&#xff0c;数据已成为企业的核心资产。随着数据量的爆炸性增长和业务需求的多样化&#xff0c;传统的集中式数据库已难以满足现代应用对于高可用性、可扩展性和性能的需求。分布式数据库以其独特的优势&#xff0c;如数据的高可用性、容错性和可扩展性&…...

基于Springboot+Vue的仓库管理系统 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…...

基于立体连接与开源链动 2+1 模式的新商业路径探索

摘要&#xff1a;本文深入剖析了立体连接的内涵&#xff0c;包括其核心关键词、连接路径与主体&#xff0c;同时详细阐述了开源链动 2 1 模式、AI 智能名片和 S2B2C 商城小程序源码的特点与功能。在此基础上&#xff0c;深入研究这些要素的融合方式及其在商业实践中的应用&…...

开启鸿蒙开发之旅:核心组件及其各项属性介绍——布局容器组件

写在前面 组件的结构 rkTS通过装饰器 Component 和 Entry 装饰 struct 关键字声明的数据结构&#xff0c;构成一个自定义组件。 自定义组件中提供了一个 build 函数&#xff0c;开发者需在该函数内以链式调用的方式进行基本的 UI 描述 今天我们要学习的就是写在build 函数里的系…...

RabbitMQ 全面解析:语法与其他消息中间件的对比分析

1. 引言 在分布式系统和微服务架构中&#xff0c;消息中间件扮演着重要的角色。它们能够解耦服务、平衡负载、提高系统的可扩展性和可靠性。RabbitMQ 是其中广受欢迎的一种。本文将从 RabbitMQ 的基础概念、语法介绍、以及与其他消息中间件的对比角度&#xff0c;全面剖析其在…...

Three.js 搭建3D隧道监测

Three.js 搭建3D隧道监测 Three.js 基础元素场景scene相机carema网络模型Mesh光源light渲染器renderer控制器controls 实现3d隧道监测基础实现道路实现隧道实现多个摄像头点击模型进行属性操作实现点击模型发光效果 性能监视器stats引入使用 总结完整代码 我们将通过three.js技…...

「IDE」集成开发环境专栏目录大纲

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「IDE」集成开发环境&#x1f4da;全部专栏「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合「C/C」C/C程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定…...

MySQL-初识数据库

目录 一、数据库基础概念 1、SQL 2、数据&#xff08;Data&#xff09; 3、数据库&#xff08;DB&#xff09; 4、数据库管理系统DBMS 5、数据库系统DBS 6、关系模型&#xff08;Relational Model&#xff09; 7、E-R图 8、常见的数据库 9、数据库基本操作 一、数据库…...

初始 html

html 文件结构 html 标签是整个 html 文件的根标签(最顶层标签) head 标签中写页面的属性. body 标签中写的是页面上显示的内容 title 标签中写的是页面的标题 <html><head><title>这是一个标题</title></head><body></body> <…...

济宁市住房和城乡建设局网站/外贸网站如何推广优化

不想当将军的士兵不是好士兵&#xff0c;这是我目前最烦的一句话&#xff0c;如今是一个被利欲薰黑了的世界&#xff0c;虽然人人有事做&#xff0c;却不见得事事有人做&#xff0c;不管你走到哪&#xff0c;听到的都是所谓的“个人发展”&#xff0c;对于一个文化群体大学生以…...

中信建设有限责任公司西安分公司/厦门关键词优化平台

中国太保旗下专业健康险公司太保安联今天在沪举办“健康儿童pie”少儿关爱服务公益发布会&#xff0c;将为符合要求的未成年被保险人提供包括就医协助、专业康护、特殊儿童马术康复等一系列暖心服务。近年来&#xff0c;长三角地区在儿童健康管理领域不断探索&#xff0c;太保安…...

wordpress拿站/关键词权重如何打造

功能分析PFMEA系列之三前两两篇文章已经就FMEA7步法的结构分析和功能分析给大家进行了说明&#xff0c;今天我们一起来看一下功能分析新版PFMEA培训之第一步计划和确定项目新版PFMEA培训之第二步结构分析功能 我们先了解下什么是功能比如灯泡的功能是什么呢&#xff1f;定义来了…...

学设计的网站有哪些/华夏思源培训机构官网

Oracle软件在安装维护过程中长要和操作用户组(OS user group)打交道&#xff0c;从早前的只有oracle用户和dba组发展到今天11gr2中的grid用户和asm组&#xff0c;Oracle管理的日新月异可见一斑。我们在单实例(single-instance)环境中常用的三个操作用户组&#xff0c;分别是:oi…...

安徽奶茶加盟网站建设/谷歌竞价排名推广公司

一、写文件 #include <fstream> ofstream ofs;//创建流对象 ofs.open(path&#xff0c;打开方式);//指定路径和打开方式 //打开方式&#xff1a; // ios::in 读文件打开 // ios::out 写文件打开 // ios::ate 从文件尾打开 // ios::app 追加方式打开 // ios::trunc 如已有…...

厦门外贸建站/免费外贸接单平台

Cesium:地形数据和影像服务支持 Cesium作为一个三维的开源可视化库,可以用来显示海量三维模型数据、影像数据、地形高程数据、空间要素、图片、视频等数据。 地形数据和影像数据是与地球自身息息相关的数据,地形用于塑造Cesium的骨架,影像地图用于描绘地表的样貌。对于一…...