dvwa模拟实验5——CSRF

  • Post author:
  • Post category:其他




CSRF(跨站请求伪造)



1.基本内容



1.1 介绍

CSRF(即跨站请求伪造)是指利用受害者尚未失效的身份认证信息、(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害人的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(转账,改密码等)。



1.2 两种漏洞

CSRF:属于

业务逻辑漏洞

,在服务器看来,所有请求都是合法正常的

XSS、SQL注入等:都是属于

技术漏洞


XSS是基于客户信任服务器,而CSRF是基于服务器信任客户(经过身份验证的)



1.3 CSRF前提

①、用户必须登录;

②、黑客必须懂得一些发包的请求;

③、服务器端是不会有二次认证;

④、被害者是不知情的。



1.4 CSRF过程

在这里插入图片描述

① 用户首先登录服务器;

② 服务器返回给用户cookie;

③ 黑客将可以修改用户密码的URL发送给用户;

④ 若用户点击此URL,则用户密码会被更改为黑客预设的密码(注:用户不点击此链接,密码不会改变;用户是否点击,即密码是否更改,黑客并不知道)

⑤ 等待一段时间后(用户结束对服务器的访问后),黑客使用用户的账号和密码(黑客预设)登录服务器,若可以登录,用户点击了URL;若登录失败,用户没有点击URL。



2.dvwa模拟实验



2.1 low等级


1.查看源代码


在这里插入图片描述

从源码中可以看出:用户输入得到参数


2.实验过程



方法一:创建修改密码的链接


利用burpsuite工具抓取数据包

在这里插入图片描述

保存上述链接

查看修改密码后的效果:

在这里插入图片描述

查看效果:

在这里插入图片描述

分析:黑客将此链接发送给用户,用户点击后会更改密码;

但是此方法有一个很大的问题,页面会显示密码已更改,

不能达到用户不知情这一重要前提

,所以需要更加隐藏的手段。


方法二:利用kali写一个修改密码的脚本


先将密码初始化为原始密码:password

在这里插入图片描述

打开kali,写一个更改密码的脚本(这里使用的是leafpad编译器)

在这里插入图片描述

在这里插入图片描述

点击denglu时,打开burpsuite工具抓取数据包:

在这里插入图片描述


方法三:通过创建一个攻击网页


写一个简单的网页,其中包含修改密码的URL

在这里插入图片描述

用户打开此网页,其登录密码就会改变

在这里插入图片描述


方法四:利用存储型xss重定向到2.html


在这里插入图片描述

在这里插入图片描述



2.2 medium等级


1.查看源代码


在这里插入图片描述

利用referer认证

在这里插入图片描述

在这里插入图片描述

用户直接修改密码时,referer中含有主机名,所以可以直接修改

在这里插入图片描述

黑客通过发送链接,让用户点击链接来修改密码时,没有referer,所以不能修改密码

在这里插入图片描述


2.绕过方式


利用burp suite抓取数据包,将主机名放在http头部的referer参数中

在这里插入图片描述



2.3 high等级


1.查看源代码


在这里插入图片描述

High级别加入了anti-CSRF token机制,用户每次访问改密页面时,服务器会返回一个随机的token值,向服务器发起请求时,需要提供token参数,服务器在收集请求时,会先检查token值,只有token值正确,才会响应客户端的请求。


2.绕过方法


利用burp suite抓取数据包,将数据包中的安全等级high改为low

在这里插入图片描述

在这里插入图片描述



2.4 impossible等级


1.查看源代码


在这里插入图片描述

首先,利用PDO技术防御SQL注入;

其次为了防范CSRF,引入了二次认证(在修改密码的时候,需要用户输入原始密码,攻击者在不知道原始密码的情况下不能修改密码)。



版权声明:本文为Allen__0原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。