用户输入新的密码并输入确认密码后会成功修改密码。完成该操作的请求使用的是get方法(注:get方法和post方法的区别是get方法参数放在url链接里,post放在请求体里),参数直接暴露在url链接中,因此在别的用户使用链接直接访问时,也可以导致修改密码。
使用Burpsuite抓包后发现请求包中携带了token字段,在之前的暴力破解中我们也遇到过同样携带token的情况。在服务器验证登录后会返回前端一个token值,在下次登陆的时候携带该值服务器才会接受请求,因此要实现CSRF就需要获得用户的token值。而token值是存储在客户端的页面下,想要获取token值要先获得用户的cookie。
获得用户cookie需要利用靶场中的XSS漏洞,通过执行远程脚本文件来获得用户的cookie值,然后再利用cookie值去获得用户的token。这里由于水平有限仅完成了获得用户cookie的部分,可以参考这个思路去执行。
$cookie =$_GET['cookie'];
$ip = getenv('REMOTE_ADDR');
$time = date('Y-m-dg:i:s');
$fp =fopen("cookie.txt","a");
fwrite($fp,"IP:".$ip."Date: ".$time." Cookie:".$cookie."n");
fclose($fp);
修改密码需要输入旧密码,攻击者无法知道旧密码所以无法进行CSRF攻击。
原文始发于微信公众号(仙友道):DVWA | 跨站请求伪造
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论