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.mzph.cn/web/8467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lora基础炼丹学习笔记

1、收集数据集 20-30张人物各个角度、各个姿势的图片 2、图片预处理 裁剪 打标签 裁剪必须也要512 * 512 ,因为sd1.5就是用这个尺寸训练的,可以使用后期处理 打标可以勾选这个,Deepbooru对二次元画风更友好 打标也可以使用wb14-tagger的…

Flink checkpoint 源码分析- Checkpoint snapshot 处理流程

背景 在上一篇博客中我们分析了代码中barrier的是如何流动改的。Flink checkpoint 源码分析- Checkpoint barrier 传递源码分析-CSDN博客 最后跟踪到了代码org.apache.flink.streaming.runtime.io.checkpointing.CheckpointedInputGate#handleEvent 现在我们接着跟踪相应代…

FTTR(光猫)ITMS注册NCE纳管

ITMS注册 TR069交互过程: 1.1. TR069交互—主动连接机制 主动连接机制是指CPE主动发出请求连接事件(事件可以为: 0 BOOTSTRAP; 1 BOOT; PERIODIC等等)给ACS。在连接建立之后才能进行业务处理(通过调用RPC方法实现)。 备注:政企…

2024.5.8

聊天框完善 #include "mywidget.h" #include "ui_mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent), ui(new Ui::MyWidget) {ui->setupUi(this);//设置窗口大小this->resize(400,560);//设置窗口图标和标题this->setWindowTit…

Android C++ 开发调试 LLDB 工具的使用

文章目录 调试环境准备基础命令Breakpoint CommandsWatchpoint CommandsExamining VariablesEvaluating ExpressionsExamining Thread StateExecutable and Shared Library Query Commands 参考: Android 中在进行 NDK 开发的时候,我们经常需要进行 C 代…

隐式3D形状表示:Occupancy Networks

OccNet 的关键思想是隐式地表示3D形状,而不是显式地表示。与直接编码形状几何信息不同,OccNet 将形状的表面建模为非线性分类器的决策边界。 隐式表示:Occupancy Networks 将 3D 形状表示为非线性分类器函数的决策边界 f θ : R 3 X → [ 0…

2024年颠覆商业模式《本草生活》项目,巧妙三招营销引流裂变套路

2024年颠覆商业模式《本草生活》项目,巧妙三招营销引流裂变套路 文丨微三云营销总监胡佳东,点击上方“关注”,为你分享市场商业模式电商干货。 - 引言:现如今流量枯竭、降本增效、红利不再已是线上营销的常态,互联网…

静态照片怎么合成gif?详细介绍一个方法

我们在各大平台中都能看到各种样式的gif动图。Gif动图其实就是由一帧一帧的静态图片合成的动态效果的gif,想要制作gif动画可以通过使用在线图片合成(https://www.gif5.net/)工具-GIF5工具网,手机、pc均可操作,只需要上…

nestjs 全栈进阶--自定义装饰器

视频教程 20_nest中自定义装饰器_哔哩哔哩_bilibili nest new custom-decorator -p pnpm pnpm start:dev 在Nestjs 中我们使用了大量装饰器 decorator ,所以Nestjs 也允许我们去自定义装饰器。 1. 自定义方法装饰器 nest g decorator aaa --flat 它生产的代码…

详细分析McCabe环路复杂度(附例题)

目录 前言1. 基本知识2. 例题 前言 该知识点常出在408或者软考中,对此此文重点讲讲理论知识以及例题 对于例题平时看到也会更新 1. 基本知识 McCabe环路复杂度是一种用于衡量软件代码复杂性的指标,主要是通过计算代码中的控制流图中的环路数量来衡量…

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

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

5V升8.4V2A升压恒压WT3231

5V升8.4V2A升压恒压WT3231 WT3231 是一种高性能直流-直流(DC-DC)转换器,集成了能够承受10A电流和26mΩ低导通电阻的功率MOSFET。该转换器能提供高达12V的稳定输出电压,并具有固定600KHz开关频率,使得小型外部电感和电…

解决github无法克隆私有仓库,Repository not found问题(2024最新)

一、背景 这个问题出现,是你用了其他主机设备,需要重新clone私有库时,发现一直报找不到仓库,如下报错: remote: Repository not found.二、解决方法 (1)账号密码方式(已不支持&am…

构建自己的docker镜像node.js

学习资源: 构建自己的 Docker 镜像_哔哩哔哩_bilibili 针对其中的一些比较困难的点写篇文章。 以下是对app.js的注释: // 使用 Koa 框架搭建 Node.js 应用的示例代码// 这两行代码引入了 koa 模块,并创建了一个新的 Koa 应用实例&#xf…

C++之QT文本处理QDir、QFileDialog、QStringList、QFile

一、相应的头文件 #include <QFileDialog> #include <QDir> #include <QStringList> 二、简介 1.QFileDialog 实际效果如下&#xff1a;比如需要选择打开的文件夹或者文件名&#xff0c;通过调用资源管理器的方式进行可视化操作。 代码示例为&#xff1a…

gitlab集群高可用架构拆分部署

目录 前言 负载均衡器准备 外部负载均衡器 内部负载均衡器 (可选)Consul服务 Postgresql拆分 1.准备postgresql集群 手动安装postgresql插件 2./etc/gitlab/gitlab.rb配置 3.生效配置文件 Redis拆分 1./etc/gitlab/gitlab.rb配置 2.生效配置文件 Gitaly拆分 1.…

五月加仓比特币

作者&#xff1a;Arthur Hayes Co-Founder of 100x. 编译&#xff1a;Liam 编者注&#xff1a;本文略有删减 (以下内容仅代表作者个人观点&#xff0c;不应作为投资决策的依据&#xff0c;也不应被视为参与投资交易的建议或意见&#xff09;。 从四月中旬到现在&#xff0c;当你…

flask框架的初步认识

flask框架的初步认识 这是一个轻量级的网页框架&#xff0c;在运行后&#xff0c;就相当于服务器&#xff0c;当用户输入URL就会触发对应的事件调用方法&#xff0c;返回给用户一个网页文件&#xff0c;并通过自动识别html标签&#xff0c;来为用户呈现对应的样式和效果&#…

小红书达人置换合作推广怎么做?

小红书作为国内领先的生活方式分享平台&#xff0c;已成为品牌与消费者沟通的重要桥梁。达人置换合作推广&#xff0c;即品牌与小红书上的意见领袖&#xff08;KOL&#xff09;合作&#xff0c;通过他们的影响力推广产品&#xff0c;已成为品牌营销的重要手段。本文伯乐网络传媒…

【光速上手 Hydra 】一行代码自动跑多次实验,Hydra 中的 Multirun 参数如何使用?

Hydra 是一个开源的 Python 框架&#xff0c;简化了研究和其他复杂应用的开发。其关键特性是能够通过组合动态地创建一个分层次的配置&#xff0c;并通过配置文件和命令行进行覆盖。Hydra 的名称来源于其能够运行多个类似的作业 - 就像一个有多个头的九头蛇一样。 主要特性&am…