(1)原理
当我们打开或登录某个网站,浏览器与网站所存放的服务器会产生一个会话,之后一段时间,所有通过这个认证会话的请求,都会被视为可信的动作,比如此时你正登录网上银行,正在转账,此时攻击者构造恶意转账代码,当你不小心点击它时,就会完成相应的转账操作,因为此时浏览器认为这是可信的正常操作。
(2)分类dvwa
low
我们可以看到low难度的源代码中,并没有添加token, 且修改密码是通过get请求发送,该修改请求可以构造 。
medium
前端代码还是一样的,没有添加token,分析后端代码。相比于上一关这里验证了referer值。如果referer与host值不一样则拒绝修改。
Referer记录了HTTP请求的来源地址,CSRF攻击,攻击者在他自己的网站构造请求,Refer值指向他自己的网站。所以这里的referer值与host的值是不一样的。
破解办法就是抓包改referer和host值
high
看后端,发现需要检测token
所以这里想要攻击成功,必须获取到token的值,而token能在前端页面获取,所以思路就是先通过js代码获取页面元素(Token值)
impossible
在high的基础上增加了对旧密码的验证。因此不存在CSRF漏洞
参考