dvwa靶场通关(三)
第三关:CSRF(跨站请求伪造)
csrf跨站请求伪造:是一种对网站的恶意利用。尽管听起来像跨站脚本,但它与xss非常不同,xss利用站点内受信任用户,而csrf则通过伪造来自受信任用户的请求来利用受信任的网站,与xss攻击相比,csrf则通过伪装来自受信任用户的请求来利用受信任的网站。与xss攻击相比,csrf攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比xss更具危险性。
本质来说就是在你访问网站信息的同时,盗用你的cookie,用你的身份进行一些非法操作。
危害:
攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做到的事情包括:以你的名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。
low
这是一个修改密码的页面

先试试修改密码为123,提交后可以看到url中带有我们修改的密码,所以是以get方式发送请求

我们把这个url复制下来,然后修改url里的密码为我们想要的,比如123456,再把这个修改过的url缩短(网上有工具),不然太长而且很轻易看出来内容,容易被看穿。

然后打开一个新页面,把缩短的url输入,就会跳转到这个页面,显示密码已经修改了

现实攻击场景下,这种方法需要事先在公网上传一个攻击页面,诱骗受害者去点击我们构造的url从而访问我们的攻击页面,受害者会误认为是自己点击的是一个失效的url,但实际上已经遭受了CSRF攻击,密码已经被修改了,真正能够在受害者不知情的情况下完成CSRF攻击。
我们可以在本地构造一个404错误页面
桌面创建test.txt文件,打开输入如下代码
<img src="http://dvwa.com/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#" border="0" style="display:none;"/>
<h1>404<h1>
<h2>file not found.<h2>

其中的url就是上面复制下来的url,刚开始修改的密码是123,现在我们把密码修改成123456,保存后,改文件后缀名为.html 然后用正在登录dvwa的浏览器打开这个我们构造的404错误页面

这样,密码已经被我们修改成功了
medium
不知道与low有什么区别,看一下源码,发现多了stripos()函数
stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)
语法
stripos(string,find,start)
参数 描述
string 必需。规定被搜索的字符串。
find 必需。规定要查找的字符。
start 可选。规定开始搜索的位置。代码检查了保留变量HTTP_REFERER (http包头部的Referer字段的值,表示来源地址)是否包含SERVER_NAME(http包头部的 Host 字段表示要访问的主机名)。
即用户的请求头中的Referer字段必须包含了服务器的名字

我们尝试一下抓包看看,referer字段确实包含host字段的主机名

我们尝试打开上一关构造的攻击页面,打开抓包,没有referer字段
没有修改成功

在重发器里,我们添加referer字段后,修改成功,这样子我们就绕过了对referer字段的检测
high
先看源码,可以看到,High级别的代码加入了Anti-CSRF token机制,用户每次访问改密页面时,服务器都会返回一个随机的token,当浏览器向服务器发起请求时,需要提交token参数,而服务器在收到请求时,会优先检查token,只有token正确,才会处理客户端的请求。这里因为对请求的token进行了验证,所以比上两个等级的更加的安全。


可以看到,当修改密码时,token会放在url中以get方式提交,所以我们要想办法获取到用户的token。

我们先抓包,发送到重发器

这里可以配合存储型xss来获取token在xss(store)high等级下,输入以下代码
<iframe src="../csrf/" οnlοad=alert(frames[0].document.getElementsByName('user_token')[0].value)></iframe>
但是输入被限制了长度
f12打开开发者模式,搜索txtname,把maxlength改大一点,这样我们就可以完整输入代码了
得到token

把token复制到重发器里的token,模拟攻击者得到token,构造恶意url诱导用户点击,密码被修改
impossible
不仅检查了token,还要输入当前的密码,黑客无法知道用户之前的密码,所以无法进行CSRF攻击。这是比较安全的

相关文章:
dvwa靶场通关(三)
第三关:CSRF(跨站请求伪造) csrf跨站请求伪造:是一种对网站的恶意利用。尽管听起来像跨站脚本,但它与xss非常不同,xss利用站点内受信任用户,而csrf则通过伪造来自受信任用户的请求来利用受信任…...
【计算机图形学】理论考核回顾
写在前面: 1:题型主要是单选题多选题判断题计算题,题目量居多,一定要合理安排时间。 2:小题由于太琐碎了,遂不回顾,大致都是课件上做过的小题,嗯。 3:后续有时间更新期…...
一文了解国内外电子后视镜(CMS)现行法规标准
摘要: 本文小编分享一篇整合了国内外对CMS的安装及功能性做出要求的相关标准与法规。感兴趣的朋友可以专门去搜索学习。 前言:随着GB15084-2022的即将正式实施,以摄像头屏幕组合取代传统光学后视镜的新一代电子后视镜CMS相关车型将被允许上路…...
LabVIEWCompactRIO 开发指南36 确定“Clock Ticks”或模拟时间
LabVIEWCompactRIO 开发指南36 确定“Clock Ticks”或模拟时间 桌面执行节点可以控制模拟时间,因此开发人员可以使用模拟I/O在开发计算机上执行期间更改关键点的激励。要成功使用此功能,需要测量FPGA VI完成所需的时间,或者需要以直观地知道…...
ESP32 :项目的创建及项目架构解析
一、项目的创建 方式一:基于IDF示例创建 在ESP-IDF中有example示例库,以其中的一个示例为模板创建项目。 1、打开示例库 查看 - 命令面板(也可以按住CtrlShiftP 或 F1) 输入 show examples projects 2…...
TI EDI 项目数据库方案开源介绍
TI EDI 工作流简介 TI EDI到SQL Server示例流具有预配置的端口,用于从TI的EDI集成规范转换以下交易集: 850 采购订单,企业 -> TI855 采购订单确认,TI -> 企业860 采购订单变更,企业 -> TI865 采购订单变更确认,TI -> 企业856 发货通知,TI …...
报表控件FastReport使用指南——使用NuGet包创建PDF文档
FastReport 是功能齐全的报表控件,可以帮助开发者可以快速并高效地为.NET,VCL,COM,ActiveX应用程序添加报表支持,由于其独特的编程原则,现在已经成为了Delphi平台最优秀的报表控件,支持将编程开…...
策略模式-类型统计
文章目录 前言一、策略模式是什么?二、策略模式应用场景三、策略模式优点四、策略模式缺点五、场景案例:类型统计1.项目结构2.UML图解3.代码实现3.1 指标枚举3.2 请求体3.3 响应体3.4.分析统计指标策略3.5.接口3.6.扩展接口3.7.接口实现3.8.控制层 六、P…...
android 12.0app应用安装白名单
1.概述 在12.0定制化开发中,客户需求要实现应用安装白名单功能,在白名单之中的应用可以安装,其他的app不准安装,实现一个 控制app安装的功能,这需要从app安装流程入手就可以实现功能 PMS就是负责管理app安装的,功能就添加在这里就可以了, 2.app应用安装白名单核心代码 …...
android 12.0Launcher3禁止拖动图标到Hotseat
1.概述 在12.0系统Launcher3进行定制化开发中,对于hotseat的开发中,由功能需求要求禁止拖动图标到Hotseat的功能,而拖拽也是在workspace.java中处理的 接下来就从workspace.java 开始找解决的办法 2.Launcher3禁止拖动图标到Hotseat相关代码分析 packages/apps/Launcher3…...
Java阶段三Day03
Java阶段三Day03 文章目录 Java阶段三Day03JavaScript语言JavaScript概述什么是JavaScript语言特点一门编程语言包括哪些内容 语言基础变量JavaScript常用数据类型运算符各种语句如何在HTML页面中引入JavaScript代码方法和页面相关的方法 BOM和DOM什么是BOMwindow对象location对…...
【STM32G431RBTx】备战蓝桥杯嵌入式→决赛试题→第七届
文章目录 前言一、题目二、模块初始化三、代码实现interrupt.h:interrupt.h:main.h:main.h: 四、完成效果五、总结 前言 无 一、题目 二、模块初始化 1.LCD这里不用配置,直接使用提供的资源包就行 2.ADC:开启ADCsingle-ended 3.LED:开启PC8-15,PD2输出模式就行了…...
Java日期时间调整的几种方式
一、Calendar类 我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。 Calendar类的…...
如何在Windows 11更新后解决C盘已满的问题?
Windows 11比Windows 10需要占用C盘更多的空间,在升级到Windows 11后,如果升级后出现问题,安装程序可以帮你退回到Windows 10。无论怎样,在升级到Windows 11后,系统会自动制作以前的数据的副本,这会占用大量…...
DJ6-1/2/3 文件系统
目录 6.1 文件系统概述 6.1.1 文件、记录和数据项 6.1.2 文件类型 6.1.3 文件系统模型 6.1.4 对文件的操作 6.2 文件的逻辑结构 6.2.1 文件逻辑结构的类型 6.2.2 顺序文件(Sequential File) 6.2.4 索引文件(Index File&…...
华为OD机试真题 Java 实现【打印文件】【2023Q1 100分】
一、题目描述 有 5 台打印机打印文件,每台打印机有自己的待打印队列。 因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的优先级,其中数字越大优先级越高。 打印机会从自己的待打印队列中选择优先级最高的文件来打印。 如果存在两个优先级一样的文件,则选…...
基于LSB实现文本、图片、压缩包的隐藏
关于LSB的相关介绍: LSB全称为 Least Significant Bit(最低有效位),是一种基于图片最低有效位修改储存信息的隐写方法,在CTF杂项中经常会遇到,LSB属于空域算法中的一种,是将信息嵌入到图像点中…...
(万字长文)Linux——IO之重定向+缓冲区 +重定向 +缓冲区原理实现 +带重定向的简易版shell+标准输出标准错误
索引 文件描述符分配规则重定向 缓冲区1.什么是缓冲区2.缓冲区在哪里 重定向源码模拟实现缓冲区原理带重定向的简易版Xshell标准输入和标准错误 文件描述符分配规则 文件描述符的分配规则 从头遍历数组fd_array[],找到一个最小的,没有被使用的下标,分配…...
面试:js 延迟加载方式
相关知识点: js 延迟加载,也就是等页面加载完成之后再加载 JavaScript 文件。 js 延迟加载有助于提高页面加载速度 一般有以下几种方式: defer 属性 async 属性 动态创建 DOM 方式 使用 setTimeout 延迟方法 让 JS 最后加载 js 的加载…...
将Oracle数据文件导入SQL Server的方法
审计过程中,采集的业务数据有Oracle备份数据,备份文件的后缀名为.dmp。如何将*.dmp文件导入审计人员熟悉的SQL Server中呢?以下是现场审计数据导入方法介绍。 一、将*.dmp文件导入oracle数据库 *.dmp文件为Oracle数据库备份文件,因…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...

