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注入。
在这里插入图片描述

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

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

相关文章

LeetCode:718最长重复子数组 C语言

718. 最长重复子数组 提示 给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。 示例 1: 输入:nums1 [1,2,3,2,1], nums2 [3,2,1,4,7] 输出:3 解释:长度最长的公共子数组是 [3,…

protobuf学习笔记(二):结合grpc生成客户端和服务端

上一篇文章大概讲了如何将自定义的protobuf类型的message转换成相应的go文件,这次就结合grpc写一个比较认真的客户端和服务器端例子 一、项目结构 client存放rpc服务的客户端文件 server存放rpc服务的服务端文件 protobuf存放自定义的proto文件 grpc存放生成的g…

IP可以申请SSL证书吗?

目录 背景: 申请IP证书的基本条件: 支持IP地址的证书类型: 为什么要申请IP地址证书? 如何申请IP地址证书 背景: IP地址是可以实现https加密需求的,且IP SSL证书可以完美的解决企业对于IP地址实现http…

第十四届蓝桥杯省赛C++ C组所有题目以及题解(C++)【编程题均通过100%测试数据】

第一题《求和》【简单模拟】 【问题描述】 求1(含)至20230408(含)中每个数的和。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数&…

C++ —— C++11新增语法

目录 一,列表初始化 1.1 这是什么? 1.2 initializer_list 1.3 在容器的运用 1.4 STL中的变化 二,右值引用和左值引用 2.1 是什么? 2.2 这两个东西有啥关系? 2.3 有啥用? 三,*移动构…

【c 语言 】malloc函数详解

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步&…

Pytorch复现 Transformer cssdn

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍦 参考文章:TensorFlow入门实战|第3周:天气识别🍖 原作者:K同学啊|接辅导、项目定制 一、多头注意力机制 import torch import…

智慧油站系统的物联网技术方案

智慧油站系统的物联网技术方案 智慧油站远程监控云平台是物联网技术在石油能源行业的深度应用,通过集成先进的传感器技术、大数据分析、云计算及人工智能等前沿科技手段,实现对加油站运营全流程的智能化管理与服务升级。其物联网技术方案主要包括以下几…

Linux(4)常见操作整理-静态路由-双网卡-文件上传下载-运维思路-性能监测方法-jar包查找

五、常见操作 1、静态路由配置 【描述】:当前ifconfig eno16777728 对应ip:172.41.0.120 【解决】: (1) [rootlocalhost ~]# cd /etc/sysconfig/network-scripts/ (2) 添加文件&#xff1a…

k8s笔记28--快速在ubuntu上基于二进制和源码安装containerd

k8s笔记28--快速在ubuntu上基于二进制和源码安装containerd 介绍containerd 安装方法二进制文件安装源码构建安装 注意事项说明 介绍 Containerd是一个工业标准的容器运行时,它强调简单、健壮和可移植性。它可作为Linux和Windows的守护进程,能管理主机系…

进程控制 | 进程终止 | 进程等待 | 进程替换

文章目录 1.进程终止1.1.理解C/C中main函数的返回值1.2.进程终止的方式 2.进程等待2.1.进程等待必要性2.2.进程等待系统调用2.3.获取子进程status 3.进程替换3.1.进程程序替换引出3.2.如何进行进程的替换3.3.C/C调用python 博客的完整代码连接: gitee 1.进程终止 …

【Python系列】Python 解释器的站点配置

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…