CSRF(跨站请求伪造)原理

article/2025/9/23 3:03:26

什么是CSRF?

(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

CSRF指的是攻击者盗用了你的身份,以你的名义发送恶意的请求,给你造成个人隐私泄露及财产安全。

知识点补充:

Cookie实际上是一小段的文本信息(key-value格式)。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。

CSRF原理图:

93fa57609ced441ab65eda4e51576140.png

 简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的

从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤:

  • 登录受信任网站A,并在本地生成Cookie。
  • 在不登出A的情况下,访问危险网站B。
    看到这里,你也许会说:“如果我不满足以上两个条件中的一个,我就不会受到CSRF的攻击”。是的,确实如此,但你不能保证以下情况不会发生:

1.你不能保证你登录了一个网站后,不再打开一个tab页面并访问另外的网站。
2.你不能保证你关闭浏览器了后,你本地的Cookie立刻过期,你上次的会话已经结束。(事实上,关闭浏览器不能结束一个会话,但大多数人都会错误的认为关闭浏览器就等于退出登录/结束会话了......)
3.上图中所谓的攻击网站,可能是一个存在其他漏洞的可信任的经常被人访问的网站。

一个典型的CSRF例子:

759d2a51b336437ca07bf4c2d8716495.png

CSRF的分类:

CSRF的定义是强迫受害者的浏览器向一个易受攻击的Web应用程序发送请求,最后达到攻击者所需要的操作行为。CSRF漏洞的攻击根据提交数据的方式不同一般分为get型和post型。

Get型攻击:

533bd304798b46ad8d050bd0c554218d.png如果一个网站某个地方的功能,比如用户修改密码是通过GET请求进行修改的。如:/?password_new=12345&password_conf=12345&change=change# ,这个链接的意思是登陆密码修改为12345,当我们把这个链接修改为 /?password_new=admin123&password_conf=admin123&change=change# ,然后通过各种手段发送给被攻击者,诱使被攻击者点击我们的链接,当用户刚好在访问这个网站,他同时又点击了这个链接,那么悲剧发生了。这个用户的登陆密码变成 了admin123.(来自DVWA-CSRF-low)

Post型攻击:

9ea79c909c0947eb9f92e31c2cc6984e.png

在普通用户的眼中,点击网页->找到个人中心->修改密码是一个很正常的一个流程。可是在攻击者的眼中可以算正常,但又不正常的,当然不正常的情况下,是在开发者安全意识不足所造成的。攻击者在修改密码处抓到密码修改的地址。比如:/?password_new=12345&password_conf=12345&change=change# 。通过提交表单,服务器处理相关信息,表单数据如上图所示。当用户访问该页面后,表单会自动提交,相当于模拟用户完成了一次POST操作。

 防御CSRF攻击:

目前防御 CSRF 攻击主要有三种策略:

  • 验证 HTTP Referer 字段;
  • 在请求地址中添加 token 并验证;
  • 在 HTTP 头中自定义属性并验证。

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/H6V9QwBg.shtml

相关文章

Spring Security跨站请求伪造(CSRF)

CSRF(Cross Site Request Forgery) 跨站点请求伪造。是攻击者欺骗用户的浏览器去访问一个自己曾经认证过的网站。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了 web 中用户身份验证的一个漏洞&#xff1a…

解决Csrf跨站请求伪造

Csrf跨站请求伪造原理: 1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请…

web渗透测试----14、CSRF(跨站请求伪造攻击)

文章目录 一、CSRF概述二、CSRF攻击条件1、相关操作2、基于Cookie的会话处理3、没有不可预测的请求参数 三、CSRF的防御1、验证请求的Referer值2、CSRF Token3、验证码等验证业务过程的方式 四、基于Token的CSRF1、CSRF令牌的验证取决于请求方法2、CSRF令牌的验证取决于令牌是否…

跨站请求伪造漏洞

首先说明一下什么是CSRF(Cross Site Request Forgery)? 跨站请求伪造是指攻击者可以在第三方站点制造HTTP请求并以用户在目标站点的登录态发送到目标站点,而目标站点未校验请求来源使第三方成功伪造请求。 为什么会有CSRF? JS控制浏览器发送请求的时…

DVWA---跨站请求伪造CSRF

CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况…

CSRF 跨站请求伪造攻击

1.概念 全称是CSRF 跨站请求伪造攻击,攻击者利用用户已登陆的账号,诱导用户访问已构造好的恶意链接或页面,在用户不之情的情况下,做一些违反用户本意的一些违法操作。 同源策略:协议相同,域名相同&#xf…

CSRF-跨站请求伪造的原理与修复方式

CSRF: Cross site Request Forgery 跨站请求伪造 原理: 利用xss方式注入一段脚本,通过伪装来自受信任用户的请求来利用受信任的网站,当受害者在浏览器中运行该脚本时,脚本仿冒受害者,向合法的web系统发送一个请求&…

web基础漏洞之CSRF(跨站请求伪造漏洞)

cookie session token 我觉得在开始学习CSRF之前应该先学会区分这三种东西:cookie session token cookie: Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户…

Laravel框架之CSRF跨站请求伪造

一、CSRF攻击 1、什么是CSRF攻击 CSRF是跨站请求伪造(Cross-site request forgery)的英文缩写, 原理图示: csrf在laravel框架中的使用,就是在客户端form表单中设置一个_token表单域 同时把该表单域的值记录给sessi…

什么是CSRF(跨站请求伪造)?

文章目录 1. CSRF是什么?1.1 CSRF攻击细节CSRF攻击原理及过程如下: 2. CSRF漏洞检测3. 防御CSRF攻击:3.1 验证 HTTP Referer 字段3.1.1 优点:3.1.2 缺点: 3.2 在请求地址中添加 token 并验证3.3 在 HTTP 头中自定义属性并验证 1. …

WordPress 跨站请求伪造漏洞

WordPress 跨站请求伪造漏洞 漏洞ID2500593漏洞类型跨站请求伪造发布时间2021-07-08更新时间2021-07-09 CVE编号CVE-2021-20781 CNNVD-IDCNNVD-202107-420漏洞平台N/ACVSS评分N/A 漏洞简介 WordPress是Wordpress基金会的一套使用PHP语言开发的博客平台。该平台支持在PHP和My…

056 CSRF跨站请求伪造

文章目录 一: 概述二:关键点三:目标四:CSRF攻击如何触发?五:实战:CSRF场景复现六:CSRF防御6.1 无效的防御6.2 有效的防御 一: 概述 跨站请求伪造(cross site…

CSRF - 跨站请求伪造

什么是CSRF? CSRF(Cross-site request forgery)跨站请求伪造:也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS)&a…

CSRF(跨站请求伪造)

目录 CSRF 原理及过程 概述 关键点 pikachu靶场之CSRF GET型 POST型 Token 防御 如何挖掘CSRF漏洞 使用burp验证csrf 总结 CSRF (Cross-Site Request Forgery) CSRF是一种欺骗受害者提交恶意请求的攻击,攻击者盗用你的身份,向服务器发送请求…

Spring Boot项目CSRF (跨站请求伪造)攻击演示与防御

CSRF ,Cross-site request forgery,跨站请求伪造。是常见的网络攻击的方式之一,2007年曾被列为互联网20大安全隐患之一。攻击过程是攻击者伪造用户的浏览器请求,访问一个用户曾经访问过的网站, 使目标网站误以为是用户的操作而执行命令。 本篇j基于Spring Boot创建项目,…

每日漏洞 | 跨站请求伪造

01 漏洞描述 HTTP的无状态性,导致Web应用程序必须使用会话机制来识别用户。一旦与Web站点建立连接(访问、登录),用户通常会分配到一个Cookie,随后的请求,都会带上这个Cookie,这样Web站点就很容易分辨请求来自哪个用户&…

CSRF跨站请求伪造

CSRF介绍: CSRF中文名称:跨站请求伪造,是一种“ 挟持用户”在当前已登陆的Web应用程序上执行“ 非本意操作”的攻击方法。 一、CSRF回放攻击流程 套用老师所给的一张攻击原理图 从这张流程图里我们总结一下CSRF攻击生效所需要的两个必要条件 …

【CSRF-01】跨站请求伪造漏洞基础原理及攻防

目录 1 CSRF概述2 CSRF攻击过程及原理2.1 CSRF场景例子2.2 攻击过程2.3 原理2.4 攻击成功的条件: 3 CSRF攻击方式/如何触发5 CSRF的防御5.1 一些无效的防御手段5.2 有效的防御手段 6 总结参考文章 1 CSRF概述 定义:CSRF(Cross-site request …

一文带你学习跨站点请求伪造(CSRF)

一文带你学习跨站点请求伪造(CSRF) 1.何为CSRF2.浏览器的Cookie策略3.P3P头的副作用4.CSRF攻击流程5.CSRF的分类GET型POST-表单型POST-JSON型 6.CSRF的快速验证7.CSRF的防御验证码Referer CheckAnti CSRF Token 1.何为CSRF CSRF的全名是Cross Site Requ…

flask中的csrf防御机制

csrf概念 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS)&…