DVWA下的CSRF攻防实战(详解)

本文详细介绍了DVWA中的CSRF(跨站请求伪造)攻击与防御,从低到高四个安全级别分别阐述了攻击步骤和防御策略。在低级别,通过恶意站点模拟攻击;在中级,利用HTTP_REFERER检测;在高级,涉及Anti-CSRF token机制;在不可能级别,通过要求输入原始密码防止攻击。

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

我们简单谈一谈CSRF与XSS的区别:

CSRF (cross site request forgery)跨站请求伪造。CSRF是用户在不知情的情况下提交请求,而XSS是用户自己点击链接来访问网页。

整个攻击过程:
用户浏览并登录受信任网站A(dvwa),登录成功以后网站A会返回浏览器的信息中带有已登录的cookie,cookie信息会在浏览器端保存一定时间(根据浏览器设置而定),在用户没有退出网站A的情况下访问恶意站点B(这里在win2003制作一个危险网站),该危险网站B向站点A发出请求,而请求会带上浏览器所保存的站点A的cookie,A会根据所带的cookie,以为是用户访问,故通过用户的请求。

环境准备:kali (user) 192.168.1.149

Window 7 (受信任网站)搭建dvwa 192.168.1.128

Win 2003 (充当危险网站) 192.168.1.64

security level: low

  1. 在kali上登录dvwa,修改密码,获取到修改密码的url
http://192.168.1.128/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#

http://192.168.1.128/dvwa/vulnerabilities/csrf/?password_new=csrf&password_conf=csrf&Change=Change#
  1. 在2003上搭建一个网页,内容如下
<img src="http://192.168.1.128/dvwa/vulnerabilities/csrf/?password_new=csrf&password_conf=csrf&Change=Change#">
<h1>congratulations<h1>
<h2> 恭喜!!!<h2>

我们对dvwa的密码进行了修改,改为csrf,若csrf攻击成功,说明原先密码已经无法使用

在这里插入图片描述

3.kali 上登录dvwa情况下去模拟用户误点危险网站的链接

在这里插入图片描述

4.退出,重新登录dvwa,原先密码为password,发现华北地区登录,我们使用csrf试试,成功。

在这里插入图片描述

在这里插入图片描述

5.使用burpsuite一探究竟(记得设置代理)

在这里插入图片描述

在这里插入图片描述

security level: medium

在这里插入图片描述

观察源码发现,中级保留了变量 HTTP_REFERER(http包头的Referer参数的值,表示来源地址)中是否包含SERVER_NAME(http包头的Host参数,即要访问的主机名,这里是192.168.1.128)

我们访问时直接保留192.168.1.128即可

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

成功

security level: high

查看源码

在这里插入图片描述

High级别的代码加入了Anti-CSRF token机制,用户每次访问改密页面时,服务器会返回一个随机的token,向服务器发起请求时,需要提交token参数,而服务器在收到请求时,会优先检查token,只有token正确,才会处理客户端的请求。要绕过High级别的反CSRF机制,关键是要获取token,要利用受害者的cookie去修改密码的页面获取关键的token。试着去构造一个攻击页面,将其放置在攻击者的服务器,引诱受害者访问,从而完成CSRF攻击。

security level: impossible

impossible级别的代码利用PDO技术防御SQL注入,至于防护CSRF,则要求用户输入原始密码(简单粗暴),攻击者在不知道原始密码的情况下,无论如何都无法进行CSRF攻击。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

两小姐的便利贴

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

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

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

打赏作者

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

抵扣说明:

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

余额充值