CSRF跨站请求伪造

CSRF

CSRF(Cross-Site Request Forgery,跨站请求伪造)是通过诱导用户执行操作,利用用户在网站上的登录状态,以用户的身份在网站上执行恶意操作。

以下是CSRF攻击的一些关键特征:

用户身份:CSRF攻击利用的是用户已经登录的状态。如果用户没有登录,或者登录会话已经过期,那么攻击将无法进行。

无知识:在CSRF攻击中,攻击者并不需要知道用户的任何凭证(如密码或会话ID)。他们只需要诱导用户执行特定的操作。

社会工程学:CSRF攻击通常涉及一些社会工程学技巧,例如通过电子邮件或聊天消息发送恶意链接。

攻击效果:如果CSRF攻击成功,那么攻击者可以以用户的身份执行各种操作,如更改电子邮件地址、密码,或者进行资金转账等

Low

在此处更改密码

这个URL是CSRF(跨站请求伪造),在这个URL中,我们试图改变用户的密码为"qwer"。

这个URL包含了以下参数:

  • `password_new=qwer`:这是新密码。

  • `password_conf=qwer`:这是确认新密码的字段。

  • `Change=Change`:这可能是触发密码更改操作的字段。

当用户点击这个链接时,如果他们已经登录到DVWA,那么他们的密码将被更改为"qwer"。

这种攻击方法通常需要用户已经登录到目标网站,并且用户需要被诱导点击这个恶意链接。

这意味着通过更改URL传递的参数就能够不在网站内执行更改密码的操作。

如图,跳转到了 DVWA更改密码的界面,csrf成功

Medium

先看源码,相较于low,medium会检查请求是否来自可信的源。(即,请求是否来自同一服务器)。这是一种常见的安全措施,用于防止跨站请求伪造(CSRF)攻击。然而,依赖 "Referer" 头进行安全检查并不是最佳实践,因为 "Referer" 头可以被篡改,或者在某些情况下可能不会被发送。更安全的做法是使用专门设计的防 CSRF 令牌。。

"Referer" 是 HTTP 请求头的一部分,表示请求的来源。当浏览器(或者模拟浏览器行为)向 web 服务器发送请求的时候,头信息里会包含 "Referer"。它通常用来指示当前请求页面是通过哪个页面的链接进入的。例如,如果你在 www.google.com 上点击一个指向 www.baidu.com 的链接,那么在请求 www.baidu.com 时,请求头中的 "Referer" 字段就会是 www.google.com

在这里可以看到,我们在本站修改密码的时候

Referer:

http://localhost/DVWA/vulnerabilities/csrf/

所以我们进行csrf时,只需要将请求中的referer修改为dvwa本站的内容即可。

High

代码添加了一个名为 "user_token" 的令牌。用来防止跨站请求伪造(CSRF)攻击。在每次请求时,服务器都会生成一个新的令牌,并将其存储在会话中。然后,这个令牌会被添加到表单中,当用户提交表单时,服务器会检查提交的令牌和会话中存储的令牌是否匹配。如果不匹配,那么请求就会被视为非法的

这里比较麻烦,假设我们获取了token,将其拼接到medium表单中完成测试

相关推荐
Cobyte3 分钟前
4.响应式系统基础:从发布订阅模式的角度理解 Vue3 的数据响应式原理
前端·javascript·vue.js
晓得迷路了5 分钟前
栗子前端技术周刊第 124 期 - ESLint v10.2.0、React Native 0.85、Node.js 25.9.0...
前端·javascript·eslint
空中海8 分钟前
3.4 状态同步与生命周期管理
android·网络
航Hang*10 分钟前
Windows Server 配置与管理——第7章:配置DNS服务器
运维·服务器·网络·windows·安全·虚拟化
xixixi7777713 分钟前
通信产业的“全维度加速”:从5G-A商用、6G冲刺到卫星互联网密集组网
大数据·网络·人工智能·ai·多模型
半个俗人22 分钟前
fiddler的基础使用
前端·测试工具·fiddler
a11177624 分钟前
变电站数字孪生大屏ThreeJS 开源项目
前端·信息可视化·开源·html
恋猫de小郭24 分钟前
AI 的公开测评得分都在作弊,就像泡面的封面,一切以实物为准
前端·人工智能·ai编程
禅思院26 分钟前
使用 VueUse 构建一个支持暂停/重置的 CountUp 组件
前端·vue.js·架构
薛定e的猫咪36 分钟前
2026 年 4 月实测:OpenAI Codex 保姆级教程,从安装到 MCP、Skills 与多智能体协作
前端·数据库·人工智能