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

我们简单谈一谈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攻击。

おすすめ

転載: blog.csdn.net/weixin_47559704/article/details/115916049