CSRF跨站请求伪造总结

news2024/11/25 2:30:47

CSRF

什么是CSRF?

CSRF被称为跨站请求伪造,它利用用户已登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作。

跟跨站脚本攻击(XSS)相比,XSS利用的是用户对指定网站的信任,

跨站请求伪造(CSRF)利用的是网站对用户(网页浏览器)的信任。

原理

image-20230720205630759

image-20230720222736947

上图中网站 A为存在CSRF漏洞的网站,网站B为攻击者构建的恶意网站,User 为网站A网站的合法用户。CSRF攻击攻击原理及过程如下:

1、 用户user打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A

2、在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A

3、用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B

4、网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A

5、浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。

6、这就是网站B,在用户C不知情的情况下,伪造成A网站受信任的用户C去操作一些事情,但是A网站不知道操作这些事情的C是不是本人在操作。即利用了网站对用户浏览器的信任。

简单的来说,如果要利用CSRF攻击。

需要满足两个条件:

(1)受害者登录信任的网站A,并且生成cookie。

(2)在登录状态下,且cookie有效下访问攻击者网站B。

特点及危害

CSRF的特点

  1. 攻击一般发起在第三方网站,而不是被攻击的网站。被攻击的网站无法防止攻击发生。
  2. 攻击利用受害者在被攻击网站的登录凭证,冒充受害者提交操作;而不是直接窃取数据。整个过程攻击者并不能获取到受害者的登录凭证,仅仅是“冒用”。
  3. 跨站请求可以用各种方式:图片URL、超链接、CORS、Form提交等等。部分请求方式可以直接嵌入在第三方论坛、文章中,难以进行追踪。
  4. CSRF通常是跨域的,因为外域通常更容易被攻击者掌控。但是如果本域下有容易被利用的功能,比如可以发图和链接的论坛和评论区,攻击可以直接在本域下进行,而且这种攻击更加危险。

CSRF的危害

  1. 发送邮件
  2. 修改账户信息
  3. 资金转账
  4. 盗取用户隐私数据
  5. 网站被上传网马
  6. 作为其他攻击方式的辅助攻击(比如xss)
  7. 传播CSRF蠕虫(见下文中的YouTube CSRF漏洞)
  8. 等等

防护

1、同源检测

也就是我们常说的referer。

通过referer检测该请求是否为同一个IP来的。

但是这种方法很容易被绕过或者伪造。

2、使用随机token

CSRF的一个特征是,攻击者无法直接窃取到用户的信息(Cookie,Header,网站内容等),仅仅是冒用Cookie中的信息。

而CSRF攻击之所以能够成功,是因为服务器误把攻击者发送的请求当成了用户自己的请求。那么我们可以要求所有的用户请求都携带一个CSRF攻击者无法获取到的Token。服务器通过校验请求是否携带正确的Token,来把正常的请求和攻击的请求区分开,也可以防范CSRF的攻击。

攻击分类

Get型

这种类型的CSRF一般是由于程序员安全意识不强造成的。GET类型的CSRF利用非常简单,只需要一个HTTP请求,所以,一般会这样利用:

<img src=http://example.cn/csrf.php?xx=11 />

在访问含有这个img的页面后,浏览器会自动向

http://example.cn/csrf.php?xx=11

发出一次HTTP请求。example.cn就会收到包含受害者登录信息的一次跨域请求。所以,如果将该网址替换为存在GET型CSRF的地址,就能完成攻击了。

Post型

这种类型的CSRF危害没有GET型的大,利用起来通常使用的是一个自动提交的表单,如:

<form action=http://example.cn/csrf.php method=POST>
<input type="text" name="xx" value="11" />
</form>
<script> document.forms[0].submit(); </script>

访问该页面后,表单会自动提交,相当于模拟用户完成了一次POST操作。

POST类型的攻击通常比GET要求更加严格一点,但仍并不复杂。任何个人网站、博客,被黑客上传页面的网站都有可能是发起攻击的来源,后端接口不能将安全寄托在仅允许POST上面。

链接类型

链接类型的CSRF并不常见,比起其他两种用户打开页面就中招的情况,这种需要用户点击链接才会触发。这种类型通常是在论坛中发布的图片中嵌入恶意链接,或者以广告的形式诱导用户中招,攻击者通常会以比较夸张的词语诱骗用户点击,例如:

 <a href=" http://example.cn/csrf.php?xx=11" taget="_hacker">
      百万福利,点击就送!!
 <a/>

由于之前用户登录了信任的网站A,并且保存登录状态,只要用户主动访问上面的这个PHP页面,则表示攻击成功。

CSRF探测

利用burp suite,通过抓取数据包,修改相应表单信息,重新提交,伪造客户端请求,请求成功则说明存在csrf漏洞。

1、 配置浏览器代理。Burp的默认代理是127.0.0.1:8080

2、 抓取有可能存在csrf的页面(个人中心信息修改等等),右击选中的链接,选择Engagement tools—->Generate CSRF POC选项

3、 在弹出的CSRF Poc generater页面,点击”Test in browser—>Copy”,复制生成的URL,打开刚才访问过目标网站的浏览器(注意不能关闭原来登录网站的页面,此时也不能关闭代理),新建一个页面,粘贴刚才复制的URL,访问.

或者

把HTML写到自己服务器的phpstudy环境下,然后命名index.php,然后去访问自己的服务器ip地址,看看个人中心的信息是否被修改。

4、如果信息被修改,那么就存在csrf漏洞。但是这个HTML表单有一个不好的地方就是,需要点击一下。我们可以修改代码,让其不需要点击,即可直接访问我们的服务器。

image-20230720225312665

ps:测试csrf漏洞要在个人中心或者能够修改,增加的地方测试,如果没有修改的地方,那么就算存在csrf漏洞也是不行的。

参考文章

https://www.kancloud.cn/buxiaju/wangluoshentoujichu/2068695

一位不知名大佬在看云写的文章。

文章中还有一些POC利用,绕过没有参考,后续再学习。

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

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

相关文章

JasperReport与SpringBoot整合及模板制作

0. 示例代码 示例代码地址 1. 报表介绍 1.1 为什么要使用报表? 在企业级应用开发中&#xff0c;报表生成、报表打印下载是其重要的一个环节。除了Excel报表之外&#xff0c;PDF报表也有广泛的应用场景&#xff0c;必须用户详细资料&#xff0c;用户简历等 目前世面上比较流…

数据结构(二)

目录 Trie树 并查集 堆 Trie树 作用:用来高效地存储和查找字符串集合的数据结构 基本形式: 模板代码如下: #include<iostream> using namespace std;const int N 100010;//idx代表当前用到哪个下标 //既是根节点&#xff0c;又是空节点 //cnt存储的是以当前点结尾的…

在Springboot集成Activiti工作流引擎-引入、调用,测试【基础讲解】

工作流 通过计算机对业务流程自动化执行管理 他主要解决的是使在多个参与者之间按照某种“预定义规则”自动进行传递稳定 信息或任务的过程 通俗来讲 业务上一个玩着的审批流程 比如请假&#xff0c;出差 外出采购等 工作流引擎就是来解决流程问题的 提高我们的工作效率 如果…

day43-Spring_IOC

0目录 1.2.3 1. Spring_IOC 1.1 定义&#xff1a;轻量级框架&#xff0c;java EE的春天&#xff0c;主流框架 1.2 Spring特性&#xff1a;IOC控制反转&#xff1b;AOP面相切面 1.3 组成部分&#xff1a;Spring在SSM中所起到的作用&#xff08;SpringMVC和Mybatis框架的黏…

Mybatis-Plus插入数据返回主键两种方式(注解或XML)

废话不多说&#xff0c;直接撸代码: <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace&qu…

如何在Windows上恢复已删除的文件?

大多数人在无意中删除了一些重要文件后无法恢复。这些文件被暂时删除&#xff0c;直到我们清空回收站才会消失。你可以通过右键单击回收站中的文件并选择还原选项来轻松恢复这些文件。但是&#xff0c;如果你清理回收站删除了文件怎么办&#xff1f;或者不小心使用Shift Delet…

“玩趣味游戏 学交通规则”—九彩乡未成年人教育实践活动

为进一步提高未成年人道路交通安全与文明出行意识&#xff0c;有效防范道路交通事故发生&#xff0c;2023年7月21日上午&#xff0c;在海原县民政局、海原县未成年人救助保护中心、九彩乡未成年人保护工作站的支持指导下&#xff0c;海原县知行社会工作发展中心、九彩乡红十字志…

Java中静态模板文件freemaker使用

Java中静态模板文件freemarker使用 使用背景使用流程1. 引入依赖2. 配置3. 创建模板文件4. 运行代码 使用背景 FreeMarker 是一款 模板引擎&#xff1a; 即一种基于模板和要改变的数据&#xff0c; 并用来生成输出文本(HTML网页&#xff0c;电子邮件&#xff0c;配置文件&…

Softing工业将亮相2023上海国际工博展

Softing工业将亮相2023年上海国际工业博览会 ——碳循新工业 数聚新经济 “中国国际工业博览会”作为广受瞩目的专业展之一&#xff0c;全面展示了生产、过程自动化的最新技术和全面解决方案、电气系统、工业IT与制造业信息化、微系统技术&#xff1b;是中国工业领域规模最大…

mysqldump 搭建复制报错,竟然是因为这个!

作者详细分析了一个 mysqldump 搭建复制失败的问题分析过程和改进建议。 作者&#xff1a;李富强 爱可生 DBA 团队成员&#xff0c;熟悉 MySQL&#xff0c;TiDB&#xff0c;OceanBase 等数据库。相信持续把对的事情做好一点&#xff0c;会有不一样的收获。 本文来源&#xff1a…

Linux在history命令上显示日期时间

1.在用户的家目录下打开个性化设置文件.bashrc&#xff0c;添加入export HISTTIMEFORMAT" %F %T "并保存 2.在通过source命令使得配置文件生效&#xff0c;再次查看history命令就会显示时间了

Qt 桌面闹钟提示小程序

程序运行截图 倒计时 闹钟设置界面 闹钟弹窗提示提示音 源码 gitee源码链接 软件打包

ncnn-android-yolov7跑自己模型的注意事项

ncnn-android-yolov7 这是一个示例 ncnn android 项目&#xff0c;它依赖于 ncnn 库和 opencv https://github.com/Tencent/ncnn https://github.com/nihui/opencv-mobile https://github.com/xiang-wuu/ncnn-android-yolov7 如何构建和运行 步骤1 https://github.com/Ten…

C++_适配器模式——reverse_iterator模拟实现

文章目录 前言适配器(Adapter)容器适配器迭代器适配器——reverse_iterator具体逻辑完整代码 总结 前言 本篇博客主要会给大家讲解C的一个代码复用的重要方式——适配器模式&#xff0c;并且详细讲解stl是如何运用这中设计理念来实现reverse_iterator的&#xff0c;给出了模拟实…

【MySQL】centos 7下MySQL的环境搭建

从本期博客开始我们正式进入到数据库的学习&#xff0c;在学习数据库时所用到的工具是Linux环境下的MySQL 目录 一、检查环境中是否装有MySQL 二、获取MySQL官方yum源 三、配置MySQL官方yum源 四、一键安装MySQL 五、启动mysql服务 六、登录MySQL 七、修改mysql配置文件…

【Kafka】常用操作

1、基本概念 1. 消息&#xff1a; Kafka是一个分布式流处理平台&#xff0c;它通过消息进行数据的传输和存储。消息是Kafka中的基本单元&#xff0c;可以包含任意类型的数据。 2. 生产者&#xff08;Producer&#xff09;&#xff1a; 生产者负责向Kafka主题发送消息。它将消息…

智慧园区楼宇合集:数字孪生管控系统

智慧园区是指将物联网、大数据、人工智能等技术应用于传统建筑和基础设施&#xff0c;以实现对园区的全面监控、管理和服务的一种建筑形态。通过将园区内设备、设施和系统联网&#xff0c;实现数据的传输、共享和响应&#xff0c;提高园区的管理效率和运营效益&#xff0c;为居…

2023年一建学霸笔记

考点:单方取消或辞去委托承担的民事责任女《民法典》规定&#xff0c;因解除合同造成对方损失的&#xff0c;除不可归责于该当事人的事由外&#xff0c;无偿委托合同的解除方应当赔偿因解除时间不当造成的直接损失&#xff0c;有偿委托合同的解除方应当赔偿对方的直接损失和合同…

光模块高低温消光比差异大的原因分析

用于高速数字通信的光模块&#xff0c;需要具备一些特定的参数条件。其中的一个参数&#xff0c;就是消光比。消光比被用来描述最优的偏置条件和激光发射功率转化成调制功率的效率。今天就跟着小易来了解一下在实际应用中消光比产生差异的原因吧&#xff01; 一、消光比的定义…

给照片加水印软件让你保护版权不麻烦

嘿&#xff01;想要保护你的照片免受盗用吗&#xff1f;或者想为你的作品增添独特的标识&#xff1f;好消息是现在有一种水印技术可以帮你解决这些问题&#xff0c;那么&#xff0c;你知道照片加水印软件有哪些吗&#xff1f;还不清楚的朋友请你关注下这篇文章哦。接下来让我来…