DVWA-CSRF通关教程-完结

DVWA-CSRF通关教程-完结

文章目录

  • DVWA-CSRF通关教程-完结
    • Low
      • 页面使用
      • 源码分析
      • 漏洞利用
    • Medium
      • 源码分析
      • 漏洞利用
    • High
      • 源码分析
      • 漏洞利用
    • impossible
      • 源码分析

Low

页面使用

当前页面上,是一个修改admin密码的页面,只需要输入新密码和重复新密码,即可修改admin密码。
在这里插入图片描述

源码分析

Low级别的源码分析上,没有做过多的防御,只需要password_newpassword_conf一致即可通过验证,同时通过GET的方式提交的请求,URL中会有对应的参数和内容。
在这里插入图片描述
在这里插入图片描述

漏洞利用

构造攻击链接:

http://192.168.197.208/DVWA/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#

既然参数是GET方式传递的,那么我们可以直接在URL链接中设置参数,如果用户用登陆过该网站的浏览器(服务器会验证cookie)打开这个链接,那么将直接把参数传递给服务器,因为服务器并没有防CSRF的措施,所以直接可以攻击成功,密码将被改为123456。
PS:如果用户在没有登陆过这个网站的浏览器上打开这个链接,并不会更改密码,而是跳转到登录界面。因为服务器在接受访问时,首先还要验证用户的cookie,如果浏览器上并没有之前登录留下的cookie,那攻击也就无法奏效。

上面的攻击链接太明显的,参数直接就在URL中,这样很容易就会被识破,为了隐藏URL,可以使用生成短链接的方式来实现。
短网址生成器
在这里插入图片描述
构造攻击页面
真实CSRF攻击中,攻击者为了隐藏自己的攻击手段,可能构造一个假的页面,然后放在公网上,诱导受害者访问这个页面,如果受害者访问了这个页面,那么受害者就会在不知情的情况下完成了CSRF攻击。
利用burpsuit直接生成攻击页面代码。方法如下:
1、抓取更改密码的数据包,利用engagement tools生成CDRF PoC,访问点击提交之后就可以更改密码。
在这里插入图片描述
2、复制生成的html代码即为我们需要的攻击页面代码。
在这里插入图片描述
在这里插入图片描述
3、访问点击提交之后就可以更改密码。
在这里插入图片描述
在这里插入图片描述

Medium

源码分析

stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)
代码检查了保留变量HTTP_REFERER (http包头部的Referer字段的值,表示来源地址)是否包含SERVER_NAME(http包头部的 Host 字段表示要访问的主机名)。
在这里插入图片描述
正常修改密码的页面,抓包可以发现是携带Referer字段的
在这里插入图片描述
伪造的页面,抓包发现不携带Referer字段,由于伪造的页面不携带Referer字段,所以校验会失败,攻击无法完成。
在这里插入图片描述
在这里插入图片描述

漏洞利用

1、正常修改密码,使用Burpsuite抓取到Referer字段

2、伪造页面,并在访问时通过Burpsuite抓包,在包头部添加Referer字段,字段中只需要携带目标IP地址即可,
构造攻击链接:

http://192.168.197.208/DVWA/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#

在这里插入图片描述

3、攻击成功
在这里插入图片描述

High

源码分析

high级别的源码中加入了Anti-csrf token机制,由checkToken函数来实现,用户每次访问更改密码页面时,服务器会返回一个随机的token,之后每次向服务器发起请求,服务器会优先验证token,如果token正确,那么才会处理请求。所以我们在发起请求之前需要获取服务器返回的user_token,利用user_token绕过验证。
在这里插入图片描述

漏洞利用

1、安装CSRF Token Tracker插件
在这里插入图片描述

2、抓取数据包,发送到Repeater模块,进入插件之后添加主机和名(名就是token的名字,这里是user_token),还有抓取到的token值也需要添加上去。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、再重新抓包到重放模块,这时我们会发现不管怎么修改密码,都会返回200,插件里的token值也会自动更新

在这里插入图片描述
在这里插入图片描述

impossible

源码分析

Impossible级别的源码中也使用验证user_Token和原始密码来防止CSRF,如果没有当前密码无法进行修改密码。db->prepare采用的是PDO模式,防止SQL注入。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全局UI方法-弹窗三-文本滑动选择器弹窗(TextPickDialog)

1、描述 根据指定的选择范围创建文本选择器,展示在弹窗上。 2、接口 TextPickDialog(options?: TextPickDialogOptions) 3、TextPickDialogOptions 参数名称 参数类型 必填 参数描述 rang string[] | Resource 是 设置文本选择器的选择范围。 selected nu…

聚酰亚胺PI材料难于粘接,用什么胶水粘接?那么让我们先一步步的从认识它开始(十一): 聚酰亚胺PI纤维

聚酰亚胺PI纤维 聚酰亚胺PI纤维是由聚酰亚胺制成的纤维材料,是一种非常高性能的工程纤维材料。它具有极强的耐温性、耐化学性、耐热性和耐磨性等特点。具体来说,聚酰亚胺PI纤维的耐温性能非常突出,可以承受高达300℃以上的高温条件而不流失或…

热爱负压自动排渣放水器向光而行

你还很年轻,将来你会遇到很多人, 经历很多事,得到很多,也会失去很多, 但无论如何有两样东西,你绝不能丢弃, 一个叫良心,另一个叫理想。 热爱负压自动排渣放水器向光而行 一、概述 【…

目标检测+车道线识别+追踪

一种方法: 车道线检测-canny边缘检测-霍夫变换 一、什么是霍夫变换 霍夫变换(Hough Transform)是一种在图像处理和计算机视觉中广泛使用的特征检测技术,主要用于识别图像中的几何形状,尤其是直线、圆和椭圆等常见形状…

[密码学] 密码学基础

目录 一 为什么要加密? 二 常见的密码算法 三 密钥 四 密码学常识 五 密码信息威胁 六 凯撒密码 一 为什么要加密? 在互联网的通信中,数据是通过很多计算机或者通信设备相互转发,才能够到达目的地,所以在这个转发的过程中,如果通信包…

MySql实战--普通索引和唯一索引,应该怎么选择

在前面的基础篇文章中,我给你介绍过索引的基本概念,相信你已经了解了唯一索引和普通索引的区别。今天我们就继续来谈谈,在不同的业务场景下,应该选择普通索引,还是唯一索引? 假设你在维护一个市民系统&…

C++堆详细讲解

介绍 二叉堆是一种基础数据结构,主要应用于求出一组数据中的最大最小值。C 的STL中的优先队列就是使用二叉堆。 堆的性质 : 1 . 堆是一颗完全二叉树 ; 2 . 堆分为大根堆 和 小根堆(这里不讨论那些更高级的如:二叉堆,二叉堆,左偏树等等) …

《手把手教你》系列技巧篇(五十八)-java+ selenium自动化测试-分页测试(详细教程)

1.简介 前几天,有人私信里留言问宏哥,分页怎么自动化测试了,完了给他说了说思路,不知道最后搞定没有,索性宏哥就写一篇文章来讲解和介绍如何处理分页。 2.测试场景 对分页来说,我们最感兴趣的和测试的无非…

主流公链 - Monero

Monero: 加密货币的隐私标杆 1. 简介 Monero(XMR),世界语中货币的意思,是一种去中心化的加密货币,旨在提供隐私和匿名性。与比特币等公开区块链不同,Monero专注于隐私保护,使用户的交易记录和余…

快速上手Pytrch爬虫之爬取某应图片壁纸

一、前置知识 1 爬虫简介 网络爬虫(又被称作网络蜘蛛、网络机器人,在某些社区中也经常被称为网页追逐者)可以按照指定的规则(网络爬虫的算法)自动浏览或抓取网络中的信息。 1.1 Web网页存在方式 表层网页指的是不需要提交表单&…

网络: 套接字

套接字: 在网络上进行进程间通信 网络字节序与主机字节序的转化 sockaddr sockaddr struct sockaddr {sa_family_t sa_family; // 地址族char sa_data[14]; // 地址数据,具体内容与地址族相关 };sockaddr_in :主要是地址类型, 端口号, IP地址. 基于IPv4编程…

Linux:文件增删 文件压缩指令

Linux:文件增删 & 文件压缩指令 文件增删touch指令mkdir指令cp指令rm指令rmdir指令 文件压缩zip & unzip 指令tar指令 文件增删 touch指令 功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新…

vitepress builld报错

问题:build时报错:document/window is not defined。 背景:使用vitepress展示自定义的组件,之前build是没有问题了,由于新增了qr-code以及quill富文本组件,导致打包时报错。 原因:vitepress官…

密码学 总结

群 环 域 群 group G是一个集合,在此集合上定义代数运算*,若满足下列公理,则称G为群。 1.封闭性 a ∈ G , b ∈ G a\in G,b\in G a∈G,b∈G> a ∗ b ∈ G a*b\in G a∗b∈G 2.G中有恒等元素e,使得任何元素与e运算均为元素本…

vue实现把Ox格式颜色值转换成rgb渐变颜色值(开箱即用)

图示: 核心代码: //将0x格式的颜色转换为Hex格式,并计算插值返回rgb颜色 Vue.prototype.$convertToHex function (colorCode1, colorCode2, amount) {// 确保输入是字符串,并检查是否以0x开头let newCode1 let newCode2 if (t…

YOLOv9改进策略:block优化 | Transformer架构ConvNeXt 网络在检测中大放异彩

💡💡💡本文改进内容:Transformer架构 ConvNeXt 网络在图像分类和识别、分割领域大放异彩,同时对比 Swin-T 模型,在多种任务中其模型的大小和准确率均有一些提升,模型的 FLOPs 较大的减小且 Acc …

Solana 低至 0.4 Sol 创建OpenBook市场ID教程

Raydium上线代币之前,需要OpenBook ID,但是Raydium官方提供的链接创建需要花费 3-4 SOL。这成本使得我们对发行代币望而却步。 本篇文章介绍OpenBook的概念和教大家如何更低成本 (最低0.4 SOL) 创建 OpenBook Market ID。 目录 1、Raydium加池子创建为什…

机器学习中的 K-Means算法及其优缺点(包含Python代码样例)

一、简介 K-Means算法是一种经典的无监督学习算法,用于将数据集中的样本分为 K 个不同的类别。K-均值聚类算法的工作原理如下: 随机选择 K 个中心点作为初始聚类中心。将每个样本点分配到离其最近的聚类中心,形成 K 个初始聚类。通过计算每…

亮数据——让你的IP走出去,让价值返回来

亮数据——让你的IP走出去,让价值返回来 前言跨境电商最最最大的痛点——让IP走出去超级代理服务器加速网络免费的代理管理软件亮数据解决痛点亮数据优势介绍亮数据浏览器的使用示例总结 前言 当前社会信息的价值是不可想象的,今天在亮数据中看到了个【…

大话设计模式之模板方法模式

模板方法模式(Template Method Pattern)是一种行为设计模式,它定义了一个算法的框架,将特定步骤的实现延迟到子类中。模板方法模式通过在父类中定义算法的骨架,而将具体步骤的实现留给子类来完成,从而使子类…