CSRF跨站请求伪造——入门篇【DVWA靶场low级别writeup】

CSRF跨站请求伪造——入门篇

  • 0. 前言
  • 1. 什么是CSRF
  • 2. 一次完整的CSRF攻击


0. 前言


本文将带你实现一次完整的CSRF攻击,内容较为基础。需要你掌握的基础知识有:

  • 了解cookie
  • 已经安装了DVWA的靶场环境(本地的或云的);
  • 下载了专业版BurpSuite;

1. 什么是CSRF


1. 模拟一次“正常”的上网行为

  • 有一天,我打开了一个银行的网页(我们模拟的银行网站),想要给我的朋友转钱:

在这里插入图片描述

  • 转完钱后,我又去浏览了其他“好看”的网页:

在这里插入图片描述

  • 看了一会儿之后,再次回到银行页面查看余额,发现钱没了!!!又刷新了一次好看的页面,再去看银行,钱更少了!!!这是什么情况?

2. 分析

  • 作为一名网络安全的选手,怎么甘心钱就这么消失了呢?肯定有猫腻。我们检测一下“好看”界面的网络源代码,发现果然有问题:

在这里插入图片描述

  • 这个页面中,有一个图片标签,向银行网站发起了一次转账请求,目标用户是1102,转账金额为1000块。
  • 但是它没有我的用户名和密码啊,这是怎么回事?我们再去查看一下浏览器的安全设置,发现了问题:

在这里插入图片描述

  • 在我们第一次登入银行网站后,浏览器记录了当前用户的Cookie,且浏览器安全级别较低,不同网站之间,没有设置Cookie的拦截。这也就意味着,当我使用这个浏览器访问其他“好看”网站时,该网站可以使用之前保留的Cookie,向银行发起请求,从而绕过身份验证,攻击就发生了。
  • 这就是CSRF跨站请求伪造!

2. 一次完整的CSRF攻击


本次实验,全部在BP自带的浏览器上进行。

1. 先看题目

  • 修改DVWA的安全等级为low:

在这里插入图片描述

  • 场景是,现在有一个用户要改变admin的密码,输入两次新密码,一次验证:

在这里插入图片描述

  • 我们要通过CSRF的手段,在用户不知情的情况下,修改admin密码,这个密码用户不知道,它今后也就登入不了了。

2. 攻击开始

  • 开启BP的拦截功能:

在这里插入图片描述

  • 用户输入了新密码,并提交了修改请求,该信息被我们拦截到了,直接将请求forward,并关闭拦截。接下来直接右键,让BP自动生成一段CSRF的测试代码:

在这里插入图片描述

  • 可以看到,BP为我们生成了一个HTML文件:
    • 如果用户自己打开了这个网页,它将会向目标网站(刚才用户修改密码所在的网站),自动发送修改密码的请求。可以通过修改password对应的value的值,将密码修改为我们指定的内容admin
    • 自动提交的功能是由JS的代码实现的,为document.forms[0].submit();
<html><!-- CSRF PoC - generated by Burp Suite Professional --><body><form action="http://localhost/DVWA/vulnerabilities/csrf/"><input type="hidden" name="password&#95;new" value="admin" /><input type="hidden" name="password&#95;conf" value="admin" /><input type="hidden" name="Change" value="Change" /><input type="submit" value="Submit request" /></form><script>history.pushState('', '', '/');document.forms[0].submit();</script></body>
</html>
  • 在BP自带的浏览器中测试,copy该文件的路径,在BP中打开:

在这里插入图片描述

  • 可以看到,这个新页面立即跳转到了修改用户密码的界面,并且修改成功,实验完成。

在这里插入图片描述

3. 思考

  • 上述实验中,我们即是用户,也是攻击者。
  • 用户视角:
    • 登入进DVWA网站主界面后,就不管了,也没想着去修改密码。之后不慎点击了某个不知名链接,导致密码被恶意修改了;
  • 攻击者视角:
    • 已经提前做好了一个CSRF的攻击网站,等待用户点击。实验中拦截请求的操作,是不会出现在真实场景中的,只是为了使用一下BP自带的CSRF自动生成工具。

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

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

相关文章

BT-Basic函数之首字母R

BT-Basic函数之首字母R 文章目录 BT-Basic函数之首字母Rrandomizercallremoterenamereportreport clearreport fault syndromereport isreport level isreport outreport usingre‑savere‑storereturnrevision$rexitrinitrli$rndrotaterpmcrpsrun randomize 以下是这段英文的…

CentOS 7 如何挂载ntfs的移动硬盘

CentOS 7 如何挂载ntfs的移动硬盘 前言一、查看硬盘并尝试挂载(提示无法挂载)二、yum安装epel-release提示yum被锁定三、强行终止yum的进程四、yum安装epel-release完成五、yum安装ntfs-3g六、此时可正常挂载NTFS硬盘 前言 CentOS 7默认情况下是不支持NTFS的文件系统&#xff…

面试常考简单操作

参考文章 面试常考简单操作 快速排序归并排序Dijkstra自定义排序交替打印奇偶数冒泡排序插入排序堆排序欧几里得算法求最大公约数单例模式的双重校验LRU 快速排序 public class Solution {private static int partition(int[] arr, int left, int right) {int temp arr[left]…

2025图像处理和深度学习国际学术会议(IPDL 2025)

重要信息 官网&#xff1a;www.IPDL.xyz 时间&#xff1a;2025年4月11-13日 地点&#xff1a;中国-成都 简介 随着深度学习和图像处理技术的迅速发展&#xff0c;相关技术的应用逐渐渗透到各个行业&#xff0c;如医疗影像分析、自动驾驶、安防监控和智能制造等。这些应用的…

RNN万能逼近定理证明

RNN万能逼近定理证明 RNN原理图和数学表达式RNN的万能逼近定理及其证明证明 RNN原理图和数学表达式 s t U h t − 1 W x t b ∈ R D h s_tUh_{t-1}Wx_tb\in\mathbb{R}^{D_h} st​Uht−1​Wxt​b∈RDh​ s t ∈ R D h s_t\in\mathbb{R}^{D_h} st​∈RDh​ U ∈ R D h D h U\…

算力重构营销生态:广电数字人 “造星“ 运动背后的智能革命

一、数字人 "造星" 运动&#xff1a;广电行业的智能觉醒 当陕西广电的虚拟主播 "小雅" 在柞水县融媒体中心实现日更 100 秒新闻&#xff0c;当湖北广电的 "王丹" 从新闻主播转型为城市文化 IP&#xff0c;一场由算力驱动的数字人 "造星&qu…

大数据Spark(五十六):Spark生态模块与运行模式

文章目录 Spark生态模块与运行模式 一、Spark生态模块 二、Spark运行模式 Spark生态模块与运行模式 一、Spark生态模块 Spark 生态模块包括&#xff1a;SparkCore、SparkSQL、SparkStreaming、StructuredStreaming、MLlib 和 GraphX。与 Hadoop 相关的整个技术生态如下所示…

Could not find artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0 in central

具体错误 [ERROR] Failed to execute goal on project datalink-resource: Could not resolve dependencies for project com.leon.datalink:datalink-resource:jar:1.0.0: Could not find artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0 in central (https://repo.maven…

运营商在网状态查询API接口如何对接?

运营商在网状态查询 API 接口是一种能够让开发者通过编程方式查询手机号码在运营商网络中当前状态的应用程序接口。该接口是一组规范和协议&#xff0c;允许第三方开发者通过特定的编程方式与运营商的系统进行交互&#xff0c;以查询手机号码在运营商网络中的当前状态。 运营商…

【JavaScript】---- 数组的交集,并集,差集的实现,以及Set对象的交集,并集,差集的详细介绍和使用

1. 前言 数组的交集,并集,差集的实现。其实本质来说都不算难,但是 Set 类直接实现这些方法,所以我们先自己实现一下,然后再讲解一下 Set 类的相同方法。 2. intersection 交集 用数学公式,交集被表示为: A ∩ B = { x ∈ A ∣ x ∈ B } A \cap B = \{x \in A \mid x…

青铜与信隼的史诗——TCP与UDP的千年博弈

点击下面图片带您领略全新的嵌入式学习路线 &#x1f525;爆款热榜 88万阅读 1.6万收藏 第一章 契约之匣与自由之羽 熔岩尚未冷却的铸造台上&#xff0c;初代信使长欧诺弥亚将液态秘银倒入双生模具。左侧模具刻着交握的青铜手掌&#xff0c;右侧则是展开的隼翼纹章。当星辰…

SpringBoot的日志框架

目录 默认日志框架 日志配置 更换日志框架 排除默认Logback 引入目标日志框架 添加配置文件 logback.xml SpringBoot的核心设计宗旨是约定大于配置&#xff0c;很多框架功能都给你默认加载和配置完成供你使用&#xff0c;但这就要求使用者对框架有一定的理解和改造能力&am…

今日行情明日机会——20250403

今日涨停的主要行业方向分析&#xff08;2025-04-03&#xff09; 1. 贸易战相关概念&#xff08;13家涨停&#xff09; 细分领域&#xff1a;外贸、稀土永磁、中日韩贸易、物流、港口。代表个股&#xff1a; 外贸&#xff1a;爱丽家居、派斯林、迪生力&#xff08;受特朗普宣布…

Vue3使用富文本编辑器vue-quill 自定义图片上传、文件上传

一、引入依赖 // npm install vueup/vue-quill^1.2.0 quill^1.3.7"vueup/vue-quill": "^1.2.0","quill": "^1.3.7", 二、在vue文件中使用 <templete><div class"editor-container" v-if"show"><…

k8s pod重启顺序说明

在 Kubernetes 中&#xff0c;Pod 的重启顺序由 控制器类型 和 Pod 管理策略 共同决定。以下是不同场景下的详细规则和底层逻辑&#xff1a; 一、Pod 重启的触发场景 场景类型触发原因控制方容器崩溃重启容器进程退出&#xff08;如异常、OOM&#xff09;kubelet&#xff08;…

Modbus RTU与TCP通信示例

准备工作 安装 libmodbus 库 Linux (Debian/Ubuntu): sudo apt-get install libmodbus-dev Windows: 下载预编译库 libmodbus for Windows&#xff0c;并配置开发环境。 示例 1.Modbus RTU (串行通信) #include <stdio.h> #include <modbus/modbus.h> ​ int…

maven项目添加第三方JAR包

项目开发过程中&#xff0c;不可避免的需要用到一些maven库&#xff08;公共库、司库等&#xff09;中没有的冷门jar包依赖&#xff0c;这时&#xff0c;可以将这些第三方JAR包安装到本地maven仓库中&#xff0c;实现项目依赖的一致性。具体步骤如下&#xff1a; 1、下载jar包 …

Sentinel实战(三)、流控规则之流控效果及流控小结

spring cloud Alibaba-Sentinel实战&#xff08;三&#xff09;、流控效果流控小结 一、流控规则&#xff1a;流控效果一&#xff09;、流控效果&#xff1a;预热1、概念含义2、案例流控规则设置测试结果 二&#xff09;、流控效果&#xff1a;排队等待1、概念含义2、案例流控规…

c++ (通用引用)和(左值引用)区别

问&#xff1a; for (auto &&ipKF : vpKFs) {} 使用 一个& 和 两个&& 区别和联系&#xff1f; c 在 C 中&#xff0c;auto&& 和 auto& 在范围基于的 for 循环中有重要的区别&#xff0c;涉及到引用类型和值类别的处理。让我们详细解释它们的区…

使用高德api实现天气查询

创建应用获取 Key 天气查询-基础 API 文档-开发指南-Web服务 API | 高德地图API 代码编写 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wid…