首页 > 其他分享 >DVWA-CSRF通关教程-完结

DVWA-CSRF通关教程-完结

时间:2024-03-28 15:31:34浏览次数:28  
标签:攻击 DVWA 密码 token 源码 CSRF 通关 页面

DVWA-CSRF通关教程-完结

文章目录

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

标签:攻击,DVWA,密码,token,源码,CSRF,通关,页面
From: https://blog.csdn.net/qq_39848882/article/details/137097809

相关文章

  • SQL-Labs靶场“54-57”关通关教程
    君衍.一、54关基于GET的cookie10单引号注入1、源码分析2、联合查询注入二、55关基于GET的cookie14括号注入1、源码分析2、联合查询注入三、56关基于GET的cookie14变形注入1、源码分析2、联合查询注入四、57关基于GET的cookie14双引号注入1、源码分析2、联合查询注......
  • Vulnhub--DriftingBlues-1靶机通关详解
    目标信息描述:难度等级:简单获取标志getflagsdifficulty:easyaboutvm:testedandexportedfromvirtualbox.dhcpandnestedvtx/amdvenabled.youcancontactmebyemail(itshouldbeonmyprofile)fortroubleshootingorquestions.前期准备:靶......
  • Django框架之csrf跨站请求
    【一】跨站请求伪造介绍【1】引入CSRF(Cross-SiteRequestForgery)跨站请求伪造是一种常见的网络攻击方式。攻击者通过诱导受害者访问恶意网站或点击恶意链接将恶意请求发送到目标网站上利用受害者在目标网站中已登录的身份来执行某些操作从而达到攻击的目的。【2】举......
  • 数智时代“通关攻略”,开天aPaaS驱动千行万业创新提速
    本文分享自华为云社区《数智时代“通关攻略”,开天aPaaS驱动千行万业创新提速》,作者:华为云头条。随着新一代ICT技术的深化演进,尤其是技术之间的相互融合与作用,全球产业正在加速迈入数智时代。借助信息技术,以高效低成本的方式开启新的业务增长点,已然成为企业转型的必由之路。3月1......
  • Django csrf跨站请求伪造,校验,CBV忽略与允许csrf校验
    csrf跨站请求伪造钓鱼网站,搭建一个网站与正规网站一模一样的界面,用户进入到我们的网站中,给指定用户转账,汇款确实提交到银行,但是收款人确实我们自己定义的人。本质在钓鱼网站的页面针对对方账户,只给用户提供一个没有name属性的普通input框,在内部则隐藏一个已经写好的name和value......
  • CSRF & SSRF
    CSRF&SSRFCSRFCSRF(Cross-SiteRequestForgery)(跨站请求伪造漏洞)原理用户访问网站,网站给用户cookie,此时攻击者给用户发送了一个诱惑链接,链接里有对该网站的访问代码,用户点击攻击者的链接后,触发恶意代码,攻击者就利用用户的cookie,执行了对网站的请求(以接口形式调用请求)......
  • SQL-Labs靶场“34-35”关通关教程
    君衍.一、34关POST单引号宽字节注入1、源码分析2、联合查询注入3、updatexml报错注入4、floor报错注入二、35关GET数字型报错注入1、源码分析2、联合查询注入3、updatexml报错注入4、floor报错注入SQL-Labs靶场通关教程:SQL注入第一课SQL注入思路基础SQL无......
  • csrf防御的思考
    关于csrf防御什么是csrfcsrf就是攻击者利用受信任用户的浏览器(利用浏览器的cookie),在其已经登录某个站点(A站点)的情况下,在用户不知情的情况下在A站点执行了恶意操作。恶意url一旦点击,发送请求时浏览器会自动携带cookie从上面简介可知,发生csrf主要在于A站点,没有对发起的请求进行充......
  • 【小猪学渗透】打靶第2天:DVWA入门:暴力破解、命令注入、文件上传
    暴力破解low题目界面如上先抓个包试试,发送到intruder可以看到用GET数据包传输,username和password都是直接写在了url上在password后面的数字上加上$123$这样好进行替换。报错,没有加载字典,在知乎上找到了一篇文章讲字典的找到了一个老的字典库开始攻击,发现......
  • 【小猪学渗透】打靶第1天:DVWA入门:SQL注入、SQL盲注
    前言小猪同学正式开始了渗透测试的学习,今天是入门打靶DWVA--真是开心的一天呢--参考文章这是一篇来自于csdn的攻略文开始-环境搭建小猪同学已经事先搭建好了靶场。sql手工注入low输入1and1=1判断注入点输入1’and1=1报错发现注入点,受到单引号闭合的影响......