DVWA靶场之CSRF通关详解

原理
CSRF漏洞是指利用受害者尚未失效的身份认证信息( cookie、会话等信息),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下,以受害者的身份向服务器发送请求,从而完成非法操作(如转账、改密、信息修改等操作)。

形成原因
CSRF的形成原因主要是由于Web应用程序没有充分验证请求来源的问题。正常的请求必须携带正确的Cookie信息,而攻击者可以构造一个恶意网站,在其中包含一个发送CSRF请求的链接或表单,当用户访问这个网站时,浏览器会自动发送CSRF请求到被攻击的网站,从而实现攻击。

防御措施
随机令牌:在表单中增加一个随机生成的令牌(token),每次提交表单时都需要提交该令牌,服务器验证令牌是否正确,从而保证请求来源的合法性。
Referer验证:通过检查HTTP头部中的Referer字段,判断请求来源是否合法。但是该方法并非绝对可靠,因为发送请求时可能会篡改Referer字段。
Cookie:设置cookie的SameSite属性,值为Strict或Lax,可以限制第三方网站访问该cookie,从而避免其他网站利用cookie发起CSRF攻击。
双重认证:采用双重认证机制,例如使用短信验证码、Google Authenticator等方式,增强用户身份验证,防止受到CSRF攻击。
请求验证:在服务器端对所有请求进行验证,判断请求是否合法,例如判断请求头是否包含特定的自定义HTTP头字段,或者验证请求参数是否合法等。
突破方式
Session劫持:攻击者通过某些手段获取用户的Session ID,然后模拟用户的身份访问服务器,从而完成攻击。
跨域POST:攻击者以受害者身份向其他网站发起POST请求,通过头部设置绕过同源策略(Same-Origin Policy),达到攻击目的。
Clickjacking:攻击者在一个网站上通过iframe嵌套形式,覆盖另一个网站的操作界面,使用户执行不知情的行为。
XSS攻击:攻击者将恶意脚本注入到目标网站或者通过链接传递给受害者,当受害者访问包含恶意脚本的网页时,攻击者就可以利用受害者的权限发送恶意请求,完成攻击。
【Low】级别
在csrf的界面,点击Test credentials,输入默认的账号和密码(admin,password),点击登录,提示密码有效。
在这里插入图片描述
修改密码界面输入新的密码,再使用工具burpsuit抓包,抓到包后,点击右键,选择Engagement tools,点击CSRF Poc,最后会生成一段payload。
在这里插入图片描述
复制这段html代码,把它单独存下来,再将这个html文件的两个密码都改成123456,并在浏览器里面打开。
在这里插入图片描述
点击submit request后会跳转回dvwa,这时再次验证原来的密码,会发现密码已经失效。
在这里插入图片描述
输入更改后的密码(123456),验证成功,证明crsf修改了用户密码。
在这里插入图片描述
在这里插入图片描述
【Medium】级别
这里查看源码,与刚刚的low等级比较发现,这里只有一个等级发生了改变,即在传入密码和确认密码参数前先进行了一个if语句的判断,判断里面的内容主要是验证这个访问请求是否从dvwa网站本身发起的,如果不是这个网站发起的请求,后面的操作就不执行。
在这里插入图片描述
源码是通过referrer这个字段的参数进行判断的,通常情况下在增加referrer验证时就是网站本省当前页面的ip地址,这里需要抓包看看相关信息。

首先,修改密码为10086(这里密码没有要求,随便设置一个),修改密码成功,这里的网站如下图url栏中所示。
在这里插入图片描述
将刚刚url栏中的网址复制到一个新的网页打开,发现change下面有提示,大致意思就是请求的来源不正确。
在这里插入图片描述
利用工具burpsuit抓包分析有:

对于最开始更改密码成功的页面抓包,可以看到有referer信息。
在这里插入图片描述
那解决办法就将刚刚页面没有问题的referer信息复制到第二个页面中,再返回给浏览器响应,可以看到密码已经更改成功。
在这里插入图片描述
【High】级别
首先查看源码,发现该级别加入了token机制,当用户访问修改密码页面修改时,服务器会返回一个随机的token,向服务器发送请求时,需要提交token,服务器接收请求时会先检查token,只有token正确,才会去处理响应请求。
在这里插入图片描述
利用burpsuit工具抓包可以看到主机名和token值。
在这里插入图片描述
通过存储型的XSS获得token,这里name长度限制抓包解决,然后将name值设为<iframe src=“…/csrf” οnlοad=alert(frames[0].document.getElementsByName(‘user_token’)[0].value)>,forword,然后网页中就得到了一个没有使用过的token值。
在这里插入图片描述
然后回到csrf界面,修改密码,将url栏中的token值改为刚刚得到的新token值。即把:

http://www.dvwa.com/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change&user_token=7732854e8c3912dd284538ed7533fe51#

改为:

http://www.dvwa.com/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change&user_token=3914162e7106cc2b9dc4905883a2b636#

然后修改密码成功。
在这里插入图片描述
然后去登录验证,修改密码成功。
在这里插入图片描述

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在进行DVWA靶场CSRF通关时,通常需要利用一个带有恶意代码的链接,来欺骗用户点击该链接,从而触发CSRF攻击。引用和引用提供了两个链接,其中包含了类似以下格式的参数:password_new=123456&password_conf=123456&Change=Change&user_token=xxxxxxxxxxxxxx。其中,user_token是一个用于防止CSRF攻击的令牌。 为了成功完成CSRF通关,你可以使用这些链接中的其中一个,将其发送给目标用户,以诱使该用户点击链接。当用户点击链接时,恶意代码就会利用用户的登录凭证进行操作,例如更改密码。这样,你就能成功完成DVWA靶场CSRF通关。 需要注意的是,为了成功进行CSRF攻击,你需要确保目标用户已经登录了DVWA靶场,并且用户的浏览器没有启用CSRF防护机制(如SameSite属性或CSRF令牌验证)。同时,也要注意遵循法律和道德规范,不要进行未经授权的攻击行为。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [DVWA靶场CSRF通关详解](https://blog.csdn.net/qq_62169455/article/details/131427023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [kali2021.3安装dvwa靶场](https://download.csdn.net/download/u014419722/82144505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值