CSRF漏洞简介

csrf简介

CSRF 全称为跨站请求伪造( Cross-site request forgery ),是一种网络攻击方式,在 CSRF 的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。也被称为 one-click attack 。

原理 

首先,我们来说一下cookie是什么?

所谓“cookie”数据是指某些网站为了辨别用户身份,储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。 通俗来讲就是指缓存数据,包括用户名、密码、注册账户、手机号等公民个人信息。

漏洞危害

常见 CSRF 漏洞危害如下 :
  • 篡改目标网站上的用户数据信息,如用户名手机号等
  • 盗取用户隐私数据。
  • 配合XSS漏洞造成更大危害。
  • 传播CSRF蠕虫。
  • 总结:简而言之,是利用目标用户的合法身份,以用户的名义执行非法操作。

 get型csrf

       在 web 应用中,很多接口都是通过 GET 进行数据的请求和存储,如果未对来源进行校验,并且没有 token保护,许多用户在登录一个网站以后,就会产生一个cookie ,去访问别的网站时,一般会利用cookie验证,而不验证来源,攻击者可以直接通过发送含有payload 的链接诱导点击来进行攻击。

post型csrf     

         post 型与 get 型的差别就是 get 型参数是在 url 中直接显示, post 型需要抓包才能看到参数
所以 post csrf 不能直接伪造恶意链接。而需要伪造一个页面,提交表单。
        可以自己编写代码,也可以通过 burp 抓包工具构造 poc。

csrf(token)

  • csrf的主要问题是敏感操作容易被伪造,我们可以加入token让每次的请求不容易被伪造。
  • 每次请求,都增加一个随机码(需要够随机,不容易被伪造),后台每次对这个随机码进行验证,抓包进行查看

图中的框为token

跟前面比较,这里多了一个 Token ,如果后台对提交的 Token 进行了验证,由于 Token 是随机的,我们就无法伪造URL 了。

防御手段

  • 验证HTTP Referer字段
  • 限制Cookie生命周期
  • 使用一次性token
  • 使用验证码或者密码确认方式进行

绕过方法 

  1. Referer 绕过
    referer 绕过: 其他协议( data )或 https http
    包含 referer 若只检查是否包含网址,只需在我们的网站上创建一个文件 / 文件夹即可
  2. CSRF-token 绕过
    删除令牌 :删除 cookie/ 参数中 token ,免服务器验证
    令牌共享: 创建两个帐户,替换 token 看是否可以互相共用;
    篡改令牌值 :有时系统只会检查 CSRF 令牌的长度;
    解码 CSRF 令牌: 尝试进行 MD5 Base64 编码
    修改请求方法 post 改为 get
    窃取 token :重定向、 XSS web 缓存欺骗、 clickjacking 等都可能导致 token 泄露

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/604055.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C51版本Keil + STC-ISP 实现第一盏灯,从创建到实现

创建项目 1. 新建项目 Project -> New uVision Project 2.1 新建文件夹 2.2 输入文件名称, 并保存 3.1 选择当前位STC芯片的开发板,选择STC MCU Database 搜素具体芯片型号,进行配置: 3.2 选择通过搜索框搜索到stc相关芯片信息 如果st…

linux数据备份与恢复

目录 前言 1、数据备份和恢复中的两个关键性指标 2、linux系统的定时任务 1)本地定时任务crontab 在实验测试过程中,遇到多次crontab任务不执行问题 ,总结下来主要有几个方面原因: 2)分布式定时任务系统Jenkins 3、备份存储…

机房——蓝桥杯十三届2022国赛大学B组真题

问题分析 这题用深搜广搜都能做,不过我更倾向于用广搜,因为广搜能更容易找到目标点。那么是采用结构体存储边还是采用二维数组存储临接矩阵呢?我们注意到n的取值范围为1e5,用二维数组哪怕是bool类型就需要至少1e10Byte的连续空间,这个空间太大…

为软件教学文档增加实践能力

为了更方便软件教学,我们在凌鲨(OpenLinkSaas)上增加了公共资源引用的功能。 目前可以被引用的公共资源: 微应用常用软件公共知识库Docker模板 引用公共资源 引用微应用 目前微应用包含了主流数据库,终端等工具,可以方便的进行各种相关实…

【25届秋招备战C++】23种设计模式

【25届秋招备战C】23种设计模式 一、简介程序员的两种思维8大设计原则 二、具体23种设计模式2.1 创建型模式2.2 结构性模式2.3 行为型模式 三、常考模式的实现四、参考 一、简介 从面向对象谈起, 程序员的两种思维 底层思维:向下 封装:隐藏内部实现 多…

ASP.NET小型证券术语解释及翻译系统的设计与开发

摘 要 在系统设计上,综合各种翻译类型网站优缺点,设计出具有任何使用者都可添加术语信息的且只有管理员能够实现术语修改及删除等独特方式的术语查看管理系统。此方式能够使术语量快速增大,并且便于使用者及管理员操作,满足相互…

软件设计师-应用技术-面向对象程序设计题5

考题形式: 代码填空,5 - 6空,每空3分。 基础知识及技巧: 1. 类的定义: 2. 接口的定义: 给实现类具体代码,填写接口中方法。 3. 类、抽象类、继承类、抽象方法的定义: 抽象类&…

【管理咨询宝藏95】SRM采购平台建设内部培训方案

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏95】SRM采购平台建设内部培训方案 【格式】PDF版本 【关键词】SRM采购、制造型企业转型、数字化转型 【核心观点】 - 重点是建设一个适应战略采…

20240508请问GTX2080TI的300和300A核心的差异?

20240508请问GTX2080TI的300和300A核心的差异? 在拼多多/淘宝上,GTX2080TI的300A核心的会比300核心的贵100¥左右。 但是怎么区分呢? 300a核心和300请问怎么区分呢?[嘻嘻] devicr ID diviceid 1e07是300a 1e04是300 Gp…

2024041702-计算机操作系统 - 死锁

计算机操作系统 - 死锁 计算机操作系统 - 死锁 必要条件处理方法鸵鸟策略死锁检测与死锁恢复 1. 每种类型一个资源的死锁检测2. 每种类型多个资源的死锁检测3. 死锁恢复 死锁预防 1. 破坏互斥条件2. 破坏占有和等待条件3. 破坏不可抢占条件4. 破坏环路等待 死锁避免 1. 安全状态…

使用 Parallels Desktop 在 Mac 上畅玩 PC 游戏

我们不再需要接受 “Mac 不是为游戏而打造” 这一事实;Parallels Desktop 通过将电脑变成高性能的游戏设备,从而改变了一切。 Parallels Desktop 充分利用 Mac 硬件的强大功能,让您无缝畅玩 Windows 专享游戏。 性能得到提升,可玩…

基于 llama2 的提示词工程案例2

优化大型语言模型(LLMs) 优化大型语言模型(LLMs)中的提示词(prompts)是提高模型性能和输出相关性的重要手段。以下是一些优化提示词的方向: 明确性:确保提示词清晰明确,…

数据湖与数据网格:引领组织数据策略的未来

十多年来,组织已经采用数据湖来克服数据仓库的技术限制,并发展成为更加以数据为中心的实体。虽然许多组织已经使用数据湖来探索新的数据用例并改进其数据驱动的方法,但其他组织发现所承诺的好处很难实现。因此,许多数据湖计划的有…

SOLIDWORKS Electrical电气元件智能开孔

实际的电气元器件安装中,一些元器件需要穿过孔洞安装,例如按钮、指示灯会在配电柜的控制面板上,需要穿过控制面板安装。这部分内容放在软件建模、装配时,往往比较复杂因为考虑孔的大小符合元器件规格、孔跟随元器件移动、同一元器…

CR80清洁卡的重要性

在我们日常生活中,身份证、银行卡、信用卡等塑料卡片已经成为了不可或缺的一部分。这些卡片通常符合CR80标准,这意味着它们的尺寸和厚度符合国际标准,为了保证这些卡片的读取和使用效果,清洁维护显得尤为重要。 什么是CR80卡&…

Linux学习之禁用防火墙

查看防火墙状态 systemctl status firewalld.service 第一行前面的圆圈是有颜色的就是开启状态 黑色的就是关闭状态 关闭防火墙 systemctl stop firewalld.service 输入密码认证 再次查看防火墙状态 systemctl status firewalld.service 第一行前面的圆圈变成黑色说明关闭…

杰理-701-单线灯-ws2812-驱动

杰理-701-单线灯-ws2812-驱动 LED_gradual_open(); //调用后 呼吸灯 set_led_colour(R,G,B);//具体颜色 spi_dma_set_addr_for_isr //spi 配置dma 后灯才亮 #define LED_H 0x7c #define LED_L 0x40 发送高位和地位的字节,具体…

UP互助 帮助UP起号做视频 支持B站和抖音

【软件名字】:UP互助 【软件版本】:1.0 【软件大小】:17.5MB 【软件平台】:安卓 【测试机型】:小米9 1.随便登个邮箱,添加自己平台的频道,然后就可以帮助别人,添加频道后在添加…

仓库管理系统需求调研要点

仓库管理系统需求调研 一、仓库的作用 仓库分类 原材料仓库:用于存放生产所需的原材料和零部件,需要保持原材料的质量和数量稳定。半成品仓库:存放生产过程中的半成品和在制品,需要保持良好的生产流程和及时出库。成品仓库&#x…

【Arduino IDE 2】Windows平台安装ESP8266 NodeMCU LittleFS Uploader(文件上传插件)

在Arduino IDE 2(2.2.1或更高版本)上,如何安装基于ESP8266 NodeMCU的LittleFS文件系统上传插件,以及如何将文件上传到ESP8266 NodeMCU板文件系统。 一、LittleFS简介 LittleFS是一个为微控制器创建的轻量级文件系统,可…
最新文章