白帽工具箱:DVWA中CSRF攻击与防御的入门指南

🌟🌌 欢迎来到知识与创意的殿堂 — 远见阁小民的世界!🚀
🌟🧭 在这里,我们一起探索技术的奥秘,一起在知识的海洋中遨游。
🌟🧭 在这里,每个错误都是成长的阶梯,每条建议都是前进的动力。
🌟🧭 在这里,我们一起成长,一起进步,让我们在知识的世界里畅游无阻,共同创造一个充满智慧和创新的明天。
🌟📚 点击关注,加入我们的技术探索之旅吧!❤️📖✨
✨博客主页:远见阁小民的主页
📕本文专栏:白帽学徒笔记
📕其他专栏:后端专栏 AI专栏 Python专栏 其他专栏 Linux专栏

1 简介

  CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种网络攻击,攻击者通过伪造用户请求,使得用户在不知情的情况下执行一些操作,例如更改账户信息、发送消息等。
  这种攻击利用了用户已经登录的身份,向目标网站发送恶意请求。

1.1 CSRF的工作原理

(1)用户登录: 用户在某网站(例如银行网站)登录,并获得一个合法的会话Cookie。
(2)访问恶意网站: 用户在登录状态下访问了一个包含恶意代码的第三方网站。
(3)伪造请求: 恶意网站使用用户的会话Cookie,向目标网站发送伪造的请求。
(4)执行操作: 目标网站接收到伪造请求后,由于用户已经登录,会认为请求是合法的,并执行相应操作。

1.2 防御CSRF的常用方法

(1)使用CSRF令牌: 在每个请求中包含一个唯一的、不可预测的令牌,服务器验证令牌的有效性。
(2)检查Referer头: 服务器检查请求的来源,确保请求是从同一站点发出的。
(3)双重提交Cookie: 将CSRF令牌同时存储在Cookie和请求参数中,服务器验证这两个值是否一致。

2 实战演练

2.1 演示一:设置DVWA Security安全级别为Low

在这里插入图片描述

2.1.1 打开CSRF界面

我们可以看到这是一个修改密码的界面

在这里插入图片描述
如上图所示,当我们把密码修改为:111111 后,点击Change,提示修改成功。
在这里插入图片描述

  这个时候,我们发现这是一个get型请求提交,所以我们可以直接在url中对密码进行修改,然后回车即可发出请求并修改密码完成。
  这里我们已经在url中把密码修改为222222,回车后发现再使用111111密码已经无法登录成功了👇
在这里插入图片描述

2.2 演示二:提升安全级别为Medium

  • 此时我们再按照《演示一》的流程操作一遍,可以发现已经不能直接通过url进行密码的修改了。

在这里插入图片描述

  • 正常点击Change进行密码修改,然后使用BP进行抓包可以发现,该安全等级下多了Referer的验证,这就是我无法通过url修改密码的原因。
    在这里插入图片描述

2.2.1 了解Referer 验证

  Referer 验证是一种用于增强Web应用程序安全性的技术,主要用于防止跨站请求伪造(CSRF)攻击。通过验证HTTP请求头中的Referer字段,服务器可以确保请求来源于合法的页面,而不是由第三方恶意网站伪造的。

(1)Referer 头字段
  HTTP请求头中的Referer字段包含了发起请求的页面的URL。比如,当用户在一个页面上点击链接或提交表单时,浏览器会在随后的请求中自动添加Referer字段,指明用户是从哪个页面发起的请求。
(2)Referer 验证的作用
   Referer 验证主要用于防御CSRF攻击。
  CSRF攻击的基本流程是:攻击者诱导用户在登录状态下访问攻击者控制的页面,从而在用户不知情的情况下向合法网站发送恶意请求。如果没有Referer验证,服务器可能会信任这些请求,导致安全问题。

  通过Referer验证,服务器可以确保请求确实是从合法页面发出的,从而有效防止CSRF攻击。例如,银行网站可以通过Referer验证来确保修改密码的请求是从银行网站的账户设置页面发出的,而不是从其他不可信的来源发出的。
(3)Referer 验证的局限性

  • Referer字段可以被伪造
    高级攻击者可以通过工具伪造Referer字段,从而绕过验证。
  • 浏览器隐私设置
    某些浏览器或浏览器插件可能会屏蔽Referer字段,导致合法请求被拒绝。
  • 跨站请求
    对于需要跨站请求的合法操作,Referer验证可能会带来不便。
  • 19
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远见阁

你的鼓励就是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值