当前位置: 首页 > news >正文

【CSRF实践】DVWA靶场之CSRF实践

CSRF介绍

CSRF(Cross-site request forgery),中文名叫做“跨站请求伪造”,也被称作“one click attack/session riding”,缩写为“CSRF/XSRF”。在场景中,攻击者会伪造一个请求(通常是一个链接),然后欺骗目标用户点击,一但用户点击,攻击也就完成了。

  • 同“XSS”的区别在于,CSRF是借助用户权限完成攻击,攻击者并没有拿到权限;而XSS是直接盗取用户甚至管理员的权限进行攻击,从而造成破坏
  • CSRF攻击可以利用用户已经登录或已经授权的状态,伪造合法用户发出请求给受信的网点,从而实现在未授权的情况下执行一些特权操作。

二、DVWA靶场之CSRF介绍

首先熟悉这两个功能的用处:
(1)Test Credentials:测试你使用账号密码能否登录现在的系统
(2)Change Password:可以修改当前系统的密码
在这里插入图片描述

三、DVWA靶场之CSRF实践

  1. 思考:
  • 作为攻击者:我如何让用户点击一个陌生链接后,使得用户的密码被修改。
  • 首先,我需要分析目标网站的密码修改请求的 URL 结构。这可以通过 Burp Suite 抓取自己的修改密码请求来分析。
  • 一旦确认 URL 结构后,攻击者可以构造一个伪造请求,并引导用户点击,从而利用用户的已登录状态执行恶意请求,例如,修改用户密码。
  • 注意:直接抓取得到的链接过于明显,用户不会轻易点击,因此需要进行伪装。因此可以通过变为短链接形式或者包装为1.html形式来修改。
  1. 实践步骤如下:

(1)用户在登录状态下,进行修改密码操作,输入密码:123456,点击change,显示密码已修改。进入验证界面,确认密码修改成功。当前系统密码为123456。获得用户修改密码链接为:http://192.168.81.130/DVWA/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#

(2)将链接包装为1.html形式来修改用户密码,以下为1.html的代码。将1.html文件部署在自己服务器上。

<img src="http://192.168.81.130/DVWA/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change#" border="0" style="display:none;"/><h1>404<h1><h2>file not found.<h2>

在这里插入图片描述
(3)访问1.html,刷新后密码被修改。

四、进阶(Medium)

这里Medium级别的代码增加了referer的判断。这里的意思HTTP_REFERER和SERVER_NAME如果不是来自同一个域环境的话就无法进行到内部的循环,以及修改密码操作。

在这里插入图片描述

接下来我们开始尝试攻击,根据上面的代码分析,我们可以知道referer中只要出现HOST就行,所以在恶意网站中这样操作就可以:

(1)将上面1.html重新用IP地址命名,改为:192.168.81.130.html。然后放入文件服务器的/var/www/html中。

(2)然后我们打开burp suite,对CSRF界面进行抓包,然后发送至Repeater模块

(3)在Repeater模块,抓包流量的Referer地址改为192.168.81.130.html的网页地址,地址为:http://192.168.21.30/192.168.81.130.html

(4)点击“Send”我们可以看见返回“Password Changed.”,证明修改成功,攻击成功。

五、High

(1)这次在Medium的基础上有了token值,所以我们需要在攻击者的服务器上获取被攻击者的token值。

  • CSRF攻击的本质是重要操作的所有参数,都可以被攻击者猜测到,所以token值是必须的。观察以下源码,这里是添加了Anti-CSRF token机制,用户每次到改密页面的时候,服务器会返回一个随机token,向服务器发起请求需要提交token参数,而在服务器收到请求的时候,会优先检查token,只有token正确才会处理客户端请求。

在这里插入图片描述

(2)在观察得到以上的信息后,可以利用XSS,先用XSS执行代码获取token。<script>alert(document.cookie)</script>。得到token信息后,使用该token进行medium步骤即可。

五、参考链接

  1. 参考链接

相关文章:

【CSRF实践】DVWA靶场之CSRF实践

CSRF介绍 CSRF(Cross-site request forgery)&#xff0c;中文名叫做“跨站请求伪造”&#xff0c;也被称作“one click attack/session riding”&#xff0c;缩写为“CSRF/XSRF”。在场景中&#xff0c;攻击者会伪造一个请求&#xff08;通常是一个链接&#xff09;&#xff0…...

数据库设计方面如何进行PostgreSQL 17的性能调优?

在数据库设计方面&#xff0c;PostgreSQL 17 的性能调优可以从以下几个方面入手&#xff1a; 表结构设计 选择合适的数据类型&#xff1a;根据数据的实际范围和业务需求&#xff0c;选择占用空间小、查询效率高的数据类型。对于固定长度的字符串&#xff0c;如性别字段&#…...

[场景题]如何实现购物车

1. 基于Session的购物车&#xff08;适合小型单体应用&#xff09; 核心思路&#xff1a;将购物车数据存储在用户会话&#xff08;Session&#xff09;中&#xff0c;适用于无需持久化的临时购物车。 实现步骤&#xff1a; 数据结构&#xff1a;使用Map<商品ID, 商品数量&g…...

Rust 并发编程:Futures、Tasks 和 Threads 的结合使用

一、线程&#xff08;Threads&#xff09;与异步&#xff08;Async&#xff09;的对比 1.1. 线程的优势与限制 线程是一种广泛使用的并发模型&#xff0c;几乎所有现代操作系统都支持。Rust 的标准库提供了 std::thread API&#xff0c;使得线程编程变得直观。然而&#xff0…...

常见的网络协议介绍

一、什么是网络协议 指的是通信双方的数据发送和接收顺序&#xff0c;数据的封装规则。 通俗解释&#xff1a;描述双方发送和接收的每个字节是按照什么规则。 二、TCP/IP体系的常用协议 (一)应用层 HTTP&#xff1a;超文本协议&#xff1b;指的是用来传输文本网页的协议&#…...

一文读懂加载地址、链接地址和运行地址

我们在做嵌入式系统开发时&#xff0c;会经常遇到加载地址、链接地址和运行地址的概念&#xff0c;可能会感到很困惑&#xff0c;搞不清它们三者的关系。希望此文能帮助大家彻底理解三者的关系。 一.概念 1.1.加载地址 加载地址&#xff0c;即Load Memory Address&#xff08…...

Unity帧同步与状态同步混合架构开发指南

一、技术背景与适用场景 1. 技术定位差异 帧同步&#xff08;Lockstep&#xff09;&#xff1a;同步操作指令&#xff0c;强调确定性计算&#xff0c;适用于实时性要求高的场景&#xff08;如MOBA、RTS&#xff09;&#xff0c;但存在反作弊难题16。 状态同步&#xff08;Sta…...

后路式编程

今天遇到一个问题&#xff0c;反馈的时候&#xff0c;已经提审过了&#xff0c;不能重新出包了。只能依赖Lua热更解决。非常巧的是&#xff0c;C#那边的变量全是Public的&#xff0c;这算是救了一命。想想确实可笑&#xff0c;本来是封装的问题&#xff0c;没有封装的太好。结果…...

Rust语言入门与应用:未来发展趋势解析

一、Rust语言核心优势解析 1.1 内存安全革命 rust复制 // 所有权系统示例 fn main() { let s1 String::from("hello"); // s1获得所有权 let s2 s1; // 所有权转移至s2 // println!("{}", s1); // 编译错误&#xff01;s1已失效 println!("{}&quo…...

【2025小白版】计算复试/保研机试模板(个人总结非GPT生成)附代码

一、编程语言选择 很多高校在机试中对编程语言都有明确规定&#xff0c;像复旦大学计算机学院就说明可选择 C、C 或 Java 语言答题&#xff0c;还支持 C11&#xff08;gcc5.4&#xff09;&#xff0c;C14&#xff08;g5.4&#xff09;&#xff0c;Java (openjdk1.8&#xff09…...

android11使用gpio口控制led状态灯

目录 一、简介 二、解决方法 A、底层驱动 B、上层调用 C、验证 一、简介 1、需求&#xff1a;这里是用2个gpio口来控制LED灯&#xff0c;开机时默认亮蓝灯&#xff0c;按开机键&#xff0c;休眠亮红灯&#xff0c;唤醒亮蓝灯。 原理图&#xff1a; 这里由于主板上电阻R63…...

基于Asp.net的高校一卡通管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

C++蓝桥杯基础篇(七)

片头 嗨~小伙伴们&#xff0c;大家好&#xff01;今天我们来一起学习蓝桥杯基础篇&#xff08;七&#xff09;&#xff0c;学习相关字符串的知识&#xff0c;准备好了吗&#xff1f;咱们开始咯&#xff01; 一、字符与整数的联系——ASCII码 每个常用字符都对应一个-128~127的…...

8.路由原理专题

路由器数据转发原理&#xff0c;路由表、FIB、快速转发表的关系 路由的控制平面与转发平面 控制平面:负责路由计算,维护;路由协议运行在控制平面 转发平面:进行数据包的封装,报文转发,路由表,FIB表,快速转发表等 控制平面与转发平面相互独立又协同工作 路由器检查数据包的目…...

jQuery UI 简介

jQuery UI 简介 引言 随着互联网技术的飞速发展,前端开发已经成为网站和应用程序建设的重要组成部分。jQuery UI 是一个基于 jQuery 的用户界面库,它为开发者提供了丰富的交互组件和视觉效果,使得创建具有吸引力和互动性的网页变得更加简单。本文将为您详细介绍 jQuery UI…...

Web服务器配置

配置虚拟主机 通过虚拟主机&#xff0c;可以实现用自定义的域名来访问&#xff0c;并且可以为不同的域名指定不同的站点目录。 配置IP地址和域名的映射关系 申请真实的域名需要一定的费用&#xff0c;为了方便开发&#xff0c;可以通过修改hosts文件来实现将任意域名解析到本…...

LINUX网络基础 [一] - 初识网络,理解网络协议

目录 前言 一. 计算机网络背景 1.1 发展历程 1.1.1 独立模式 1.1.2 网络互联 1.1.3 局域网LAN 1.1.4 广域网WAN 1.2 总结 二. "协议" 2.1 什么是协议 2.2 网络协议的理解 2.3 网络协议的分层结构 三. OSI七层模型&#xff08;理论标准&#xff09; …...

定制化开发的WooCommerce独立站商城更安全

定制化开发的WooCommerce独立站商城在安全性、交易风险控制以及整体用户体验方面有显著优势。以下是定制化开发在这些方面的具体表现&#xff1a; 1. 安全性更高 定制化开发允许开发者从底层架构开始设计和优化&#xff0c;确保网站的安全性。以下是具体表现&#xff1a; (1…...

Xcode 运行真机失败

错误提示&#xff1a; iPhone xxx is not available because it is unpaired. Pair with the device in the Xcode Devices Window, and respond to any pairing prompts on the device. 处理方法&#xff1a; 把Xcode关闭&#xff0c;手机断开数据线&#xff0c;打开终端&…...

【FFmpeg之如何新增一个硬件解码器】

FFmpeg之如何新增一个硬件解码器 前言一、config配置二、解码器定义1.目录结构2.数据结构 三、解码流程1、初始化mediacodec_decode_init2、帧接收mediacodec_receive_frame2.1 解码上下文MediaCodecH264DecContext2.2 发包AVPacket到解码器 -- ff_mediacodec_dec_send2.3 接收…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时&#xff0c;拉取并启动容器后&#xff0c;有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致&#xff0c;包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因&#xff0c;并提供解决方案。 一、确认MySQL容器的运行状态 …...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...