初识CSRF

news2025/1/4 11:12:55

概述

跨站请求伪造(Cross-site request forgery)通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。CSRF并不是攻击网站服务器,而是冒充用户在站内的正常操作

在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接)然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为"one click"攻击

CSRF包括三个角色:

  • 正常浏览网页的用户

  • 正规的但是具有漏洞的网站

  • 利用CSRF进行攻击的第三方网站

CSRF的危害

  • 修改账户信息

  • 传播蠕虫病毒(发邮件,盗取用户信息,转账等)

  • 上传木马文件等

XSS与CSRF区别

跟跨网站脚本攻击(XSS)相比,xss是利用脚本获取到网站cookie伪装成站点内的信任用户,而CSRF则通过在用户登录的状态下伪装成受信任用户执行用户操作,不会获取cookie

CSRF漏洞的攻击需要满足条件:

  • 目标用户已经登录了网站,能够执行网站功能

  • 目标用户访问了攻击者构造的第三方网页

实战

这里采用pikachu的靶场实战深入了解CSRF

GET

根据题目描述,应该是GET请求相关的题目

登半天登不上去哦,最后试了一下admin+123就上去了,也不知道为啥

登录进去之后就叫我们修改信息,上面关于CSRF漏洞的危害也了解过是可以更改用户信息的

但是url栏里并没有关于修改的变化,采取burp抓包看看

可以看到这里确实是GET请求修改用户信息,我们可以直接改包修改,也可以利用CSRF漏洞

我们将数据包中的GET请求复制下来并更改参数,利用它和http的a标签制作一个新的第三方网页

<a href="http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=2323&phonenum=688&add=45453&email=123&submit=submit">点我抽奖!</a>

导入新建文件中,更改后缀

双击打开,至于这里为啥会乱码,应该是字符编码的问题,不过没事,能做出来就好

点击访问连接可以看到这里的数据已经变成了,我们新建第三方网页的数据了,只需要发包就可以直接更改用户的信息

但是这里需要注意的是,修改用户信息的请求数据每一项都要添上,我第一次尝试的时候就只填了一行数据,结果修改不成功 ,也可能有不同的情况

发包之后就可以发现我们的数据已经被修改掉了

POST

想也知道不能用上把的方式了,其实抓包后直接更改红框字段也没差,他可以直接更改用户信息

但是我们主要是练习CSRF

经过查找资料,发现我们可以使用burp自带的功能生成一个POSTpoc

而且参数也给弄好了,直接更改就行了,虽然看起来这根直接修改参数没有什么区别,但是可能只是因为知识不对等,看不出其中的效果

运行之后可以看到 其他参数因为属性的原因都隐藏了,只有一个提交按钮,我们点击抓包就会发信POST请求的值发生了改变

原数据也成功更改

Token

这关与GET的唯一区别在于多了一个token字段

经过多次实验也不行,都不行,这关是由Token来识别用户的

通过百度知晓这关是不能解答的,这关会在每次访问的时候生成一个Token值,访问完就会销毁

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

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

相关文章

会话技术.

Cookie 在服务器中写一个Cookie键值对&#xff0c;然后把它扔进响应值中&#xff0c;于是在浏览器访问当前web项目时会得到响应值&#xff0c;并且把这个响应值中的Cookie数据存在浏览器中&#xff0c;下次&#xff0c;在服务器中就可以先获得刚才的Cookie数据&#xff0c;然后…

第六章_Redis管道

是什么 解决思路&#xff08;引出管道这个概念&#xff09; 管道(pipeline)可以一次性发送多条命令给服务端&#xff0c;服务端依次处理完完毕后&#xff0c;通过一条响应一次性将结果返回&#xff0c;通过减少客户端与redis的通信次数来实现降低往返延时时间。pipeline实现的…

【从零开始学Skynet】工具篇(二):虚拟机文件的复制粘贴

大家在Linux系统下开发的时候肯定会遇到虚拟机与主机间无法复制粘贴的问题&#xff0c;现在我们就来解决这样的问题&#xff0c;方便我们的开发。 1、打开设置 我们可以系统界面的菜单栏点击“控制”&#xff0c;然后打开“设置”&#xff1b; 也可以在VirtualBox界面打开“设…

建议企业采购团队学习的采购策略

随着全球市场的不断发展和竞争的日益激烈&#xff0c;企业采购团队必须制定出更加科学、合理的采购策略来适应市场的各种变化。合理的采购策略不仅可以保证企业的采购成本最优化&#xff0c;还可以提高采购效率和质量。因此&#xff0c;建议企业采购团队学会以下几种采购策略&a…

一文搞懂Plant Simulation中的Rotation设置

在处理3D动画或者展示时,常常需要在Plant Simulation调整数模的姿态,静态设置或动态设置Rotation是一个很重要的手段。 编辑3D属性,在Transformation选项卡中,我们可以看到Rotation的设置参数,如上图所示,只有一个角度和3个轴参数。如果对计算机图形学不了解的同学,估计…

【外设零基础通用教程】GPIO 下

【外设零基础通用教程】GPIO 下使用方法GPIO 值输入读取值输出设置值GPIO输入输出应用GPIO输入应用GPIO输出应用文档使用理论补充输出方式推挽输出开漏输出上篇连接&#xff1a;【外设零基础通用教程】GPIO 上&#xff0c;主要是在做视频的时候&#xff0c;发现上篇理论很多&am…

[composer-unused]扫描代码找出没有使用的依赖

composer-unused是一个使用PHP开发的命令行工具&#xff0c;就像composer一样&#xff0c;只不过它的作用是扫描出代码中&#xff0c;加载了依赖但没有实际使用的库。 使用分析 像我之前做过的一个项目&#xff0c;扫描结果如下图&#xff1a; 其中可以发现在composer.json中…

【网络】网络层协议——IP

目录网络层IP协议IP基础知识IP地址IP报头格式网段划分CIDR特殊的IP地址IP地址的数量限制私有IP地址和公有IP地址路由IP总结网络层 在复杂的网络环境中确定一个合法的路径。 IP协议 IP协议作为整个TCP/IP中至关重要的协议&#xff0c;主要负责将数据包发送给最终的目标计算机…

对USB协议的通俗理解

目录简介背景特点版本USB数据流模型总线拓扑结构USB通信流端点管道电气标准USB接口类型USB Type-AUSB Type-BUSB Type-CPIN脚定义4PIN9PIN5PIN24PIN16PIN6PINUSB数据传输相关概念通讯方式通讯方向同步方式帧和微帧USB数据格式域包令牌包数据包握手包特殊包事务IN事务OUT事务SET…

BM37-二叉搜索树的最近公共祖先

题目 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 对于该题的最近的公共祖先定义:对于有根树T的两个节点p、q&#xff0c;最近公共祖先LCA(T,p,q)表示一个节点x&#xff0c;满足x是p和q的祖先且x的深度尽可能大。在这里&#xff0c;一个节点也可以是它自己…

CSC国家公派项目网上申报今天启动/附应提交材料及说明

今天&#xff08;4月10日&#xff09;是2023年国家公派高级研究学者、访问学者、博士后项目开始申报的日期&#xff0c;知识人网小编提醒申请者关注&#xff0c;同时附上该项目的应提交材料及说明。 根据国家留学基金委&#xff08;CSC&#xff09;通知精神&#xff0c;2023年国…

typora和C51开发环境

经过查阅&#xff0c;可以用wiz和typora联动的方式记录笔记&#xff0c;这样一个文件夹里既可以用typora也可以用内置编辑器&#xff08;一种富文本编辑器&#xff09;&#xff0c;注意同一个文件不能用不同的编辑器&#xff0c;否则会错乱。以下&#xff0c;我列举了用typora的…

extern 关键字

参考https://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html 1 基本解释 extern可以置于变量或者函数前&#xff0c;以标示变量或者函数的定义在别的文件中&#xff0c;提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定…

k8s调度器扩展(Scheduler Framework)、源码编译及部署

因为研究的需要&#xff0c;需要对K8S的调度器进行扩展&#xff0c;本文主要讲解了k8s调度器扩展的一个流程&#xff0c;其中包含源码修改、源码编译、调度器配置以及部署和本人所踩的一些坑&#xff0c;使用的k8s的版本为1.23.1 1.下载源码&#xff0c;在此选择v1.23.1版本&a…

大数据之Spark部署模式

文章目录前言一、Spark的部署模式&#xff08;一&#xff09;Client模式1. Standalone集群下的Client模式2. Spark On Yarn集群下的Client模式&#xff08;二&#xff09;Cluster模式1. Standalone集群下的Cluster模式2. Spark On Yarn集群下的Cluster模式总结前言 #博学谷IT学…

c++头文件、namespace 的理解、#include、 编译模式

namespace C 命名空间 | 菜鸟教程 C命名空间&#xff08;名字空间&#xff09;详解 作用&#xff1a;多写在头文件中&#xff0c;用于多个头文件的变量函数出现重命名。 namespace中可以定义变量&#xff0c;函数&#xff0c;类等等&#xff0c;也可以写声明&#xff0c;来…

牛客网 HJ28 素数伴侣【二分图匹配,匈牙利算法】困难

描述 若两个正整数的和为素数&#xff0c;则这两个正整数称之为“素数伴侣”&#xff0c;如2和5、6和13&#xff0c;它们能应用于通信加密。现在密码学会请你设计一个程序&#xff0c;从已有的 N &#xff08; N 为偶数&#xff09;个正整数中挑选出若干对组成“素数伴侣”&am…

一种用于水位量测的浮子水位计

简介 浮子式水位传感器&#xff08;带水位显示&#xff09;是集机、电技术于一体的数字化传感器。通过输出轴的角度位移量转换成相应的数字量&#xff0c;可以高精度测量被测液位高度&#xff0c;能确认准确位置。具有断电记忆功能。 其工作原理就是&#xff1a;水位传感器测轮…

二叉搜索树(BSTree)

目录 一、二叉搜索树 二、二叉搜索树的接口及实现 1、二叉搜索树的查找 2、二叉搜索树的插入 3、二叉搜索树的删除 三、二叉搜索树的递归版本 本期博客主要分享二叉搜索树的底层实现。(主要是笔记&#xff0c;供自己复习使用&#x1f602;) 一、二叉搜索树 二叉搜索树(B…

Github创建组织(organization)

目录 前言 Github上创建组织的详细步骤 前言 创建 Github 组织&#xff08;Organization&#xff09;可以让你和你的团队共享代码&#xff0c;更好地管理和协作开发项目。Github 组织&#xff08;Organization&#xff09;是一个非常有用的工具&#xff0c;可以让开发者协同…