DVWA | 跨站请求伪造

admin 2024年12月28日13:17:55评论3 views字数 1194阅读3分58秒阅读模式
CSRF,也叫跨站脚本攻击,是利用被攻击者未失效的凭据(cookie或会话),在攻击者点击恶意链接时以被攻击者的身份向服务器发送请求,完成像转账或者修改密码等恶意操作。

原理介绍

DVWA | 跨站请求伪造

当受害者在没有退出网站时点击了攻击者发来的包含恶意请求的链接,这时候会浏览器会携带着受害者的cookie去执行访问链接,就会导致攻击者的恶意请求被执行。

LOW

用户输入新的密码并输入确认密码后会成功修改密码。完成该操作的请求使用的是get方法(注:get方法和post方法的区别是get方法参数放在url链接里,post放在请求体里),参数直接暴露在url链接中,因此在别的用户使用链接直接访问时,也可以导致修改密码。

复制修改密码成功后的当前url链接并将password_new和password_conf的参数值修改为新密码,之后新建窗口打开该链接,密码修改成功。这就完成了一次跨站请求伪造的攻击。

结果图:

DVWA | 跨站请求伪造

Medium
重复上文的步骤再次进行尝试,显示修改失败,如图:

DVWA | 跨站请求伪造

修改密码使用Burpsuite拦截修改密码的请求包查看数据包内容。

DVWA | 跨站请求伪造

复制修改密码的链接后在新的窗口打开并拦截请求包查看数据包内容。

DVWA | 跨站请求伪造

对比后发现正常的请求包中携带了referer字段,该字段是标识请求的源ip,在传递到服务器端时会对该字段进行校验,如果ip不在预先设置的范围内,服务器会拒绝访问。因此我们新建窗口打开链接时使用Burpsuite拦截请求包并在请求包中加入referer字段去访问,访问成功!

DVWA | 跨站请求伪造

成功访问截图:

DVWA | 跨站请求伪造

High

使用Burpsuite抓包后发现请求包中携带了token字段,在之前的暴力破解中我们也遇到过同样携带token的情况。在服务器验证登录后会返回前端一个token值,在下次登陆的时候携带该值服务器才会接受请求,因此要实现CSRF就需要获得用户的token值。而token值是存储在客户端的页面下,想要获取token值要先获得用户的cookie。

获得用户cookie需要利用靶场中的XSS漏洞,通过执行远程脚本文件来获得用户的cookie值,然后再利用cookie值去获得用户的token。这里由于水平有限仅完成了获得用户cookie的部分,可以参考这个思路去执行。

获得cookie的本地服务器脚本文件可以参考以下的代码:
<?php$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);?>
Impossible

修改密码需要输入旧密码,攻击者无法知道旧密码所以无法进行CSRF攻击。

DVWA | 跨站请求伪造

原文始发于微信公众号(仙友道):DVWA | 跨站请求伪造

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月28日13:17:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DVWA | 跨站请求伪造https://cn-sec.com/archives/921343.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息