dvwa模拟实验5——CSRF

CSRF(跨站请求伪造)

1.基本内容

1.1 介绍

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

1.2 两种漏洞

CSRF:属于业务逻辑漏洞,在服务器看来,所有请求都是合法正常的
XSS、SQL注入等:都是属于技术漏洞
XSS是基于客户信任服务器,而CSRF是基于服务器信任客户(经过身份验证的)

1.3 CSRF前提

①、用户必须登录;
②、黑客必须懂得一些发包的请求;
③、服务器端是不会有二次认证;
④、被害者是不知情的。

1.4 CSRF过程

dvwa模拟实验5——CSRF_第1张图片
① 用户首先登录服务器;
② 服务器返回给用户cookie;
③ 黑客将可以修改用户密码的URL发送给用户;
④ 若用户点击此URL,则用户密码会被更改为黑客预设的密码(注:用户不点击此链接,密码不会改变;用户是否点击,即密码是否更改,黑客并不知道)
⑤ 等待一段时间后(用户结束对服务器的访问后),黑客使用用户的账号和密码(黑客预设)登录服务器,若可以登录,用户点击了URL;若登录失败,用户没有点击URL。

2.dvwa模拟实验

2.1 low等级

1.查看源代码
dvwa模拟实验5——CSRF_第2张图片
从源码中可以看出:用户输入得到参数
2.实验过程
方法一:创建修改密码的链接
利用burpsuite工具抓取数据包
dvwa模拟实验5——CSRF_第3张图片
保存上述链接
查看修改密码后的效果:
dvwa模拟实验5——CSRF_第4张图片
查看效果:
dvwa模拟实验5——CSRF_第5张图片
分析:黑客将此链接发送给用户,用户点击后会更改密码;
但是此方法有一个很大的问题,页面会显示密码已更改,不能达到用户不知情这一重要前提,所以需要更加隐藏的手段。
方法二:利用kali写一个修改密码的脚本
先将密码初始化为原始密码:password
dvwa模拟实验5——CSRF_第6张图片
打开kali,写一个更改密码的脚本(这里使用的是leafpad编译器)
dvwa模拟实验5——CSRF_第7张图片
dvwa模拟实验5——CSRF_第8张图片
点击denglu时,打开burpsuite工具抓取数据包:
dvwa模拟实验5——CSRF_第9张图片
方法三:通过创建一个攻击网页
写一个简单的网页,其中包含修改密码的URL
dvwa模拟实验5——CSRF_第10张图片
用户打开此网页,其登录密码就会改变
dvwa模拟实验5——CSRF_第11张图片
方法四:利用存储型xss重定向到2.html
dvwa模拟实验5——CSRF_第12张图片
dvwa模拟实验5——CSRF_第13张图片

2.2 medium等级

1.查看源代码
dvwa模拟实验5——CSRF_第14张图片
利用referer认证
dvwa模拟实验5——CSRF_第15张图片
dvwa模拟实验5——CSRF_第16张图片
用户直接修改密码时,referer中含有主机名,所以可以直接修改
dvwa模拟实验5——CSRF_第17张图片
黑客通过发送链接,让用户点击链接来修改密码时,没有referer,所以不能修改密码
dvwa模拟实验5——CSRF_第18张图片
2.绕过方式
利用burp suite抓取数据包,将主机名放在http头部的referer参数中
dvwa模拟实验5——CSRF_第19张图片

2.3 high等级

1.查看源代码
dvwa模拟实验5——CSRF_第20张图片
High级别加入了anti-CSRF token机制,用户每次访问改密页面时,服务器会返回一个随机的token值,向服务器发起请求时,需要提供token参数,服务器在收集请求时,会先检查token值,只有token值正确,才会响应客户端的请求。
2.绕过方法
利用burp suite抓取数据包,将数据包中的安全等级high改为low
dvwa模拟实验5——CSRF_第21张图片
dvwa模拟实验5——CSRF_第22张图片

2.4 impossible等级

1.查看源代码
dvwa模拟实验5——CSRF_第23张图片
首先,利用PDO技术防御SQL注入;
其次为了防范CSRF,引入了二次认证(在修改密码的时候,需要用户输入原始密码,攻击者在不知道原始密码的情况下不能修改密码)。

你可能感兴趣的:(DVWA模拟实验)