DVWA-CSRF

LOW等级:

首先进行正常操作。

接下来打开burpsuit抓包

如图所示,将password参数test改为password:

退出DVWA用刚刚修改的密码成功登陆:

由此可知,这个数据包发送给其他用户,只要该用户登陆了DVWA的网站,就能修改他们的密码,攻击者只要修改password_new和password_conf这两个参数为自己想要的密码,将新的get请求的数据包写成链接的形式发送给受害者,希望受害者点击,但是如果我们看到这样的链接通常是不会点的,所以我们要伪造,将这个链接重新包装。

如下图所示构造html表单,将构造好的.html文件放到网站根目录下,发送链接给受害者,受害者访问后点击后相当于发送数据包给DVWA网站。

如图所示访问链接点击click me 密码成功改为hacker。

 

Medium等级:

使用Low等级的方法密码修改失败:

接下来抓包进行分析:如图所示上面是medium等级手工输入修改密码的数据包,下面是用Low等级中的方法发送的数据包,现在一个成功的数据包一个失败的数据包进行对比,观察请求包头部信息,发现refer这一行不同,接下来对失败的数据包的refer进行修改再提交。

如上图所示,首先使用之前对比的正确的数据包的refer 进行发包,成功修改密码。

 

 

然后将refer中域名后面的目录都去掉进行发包,发现同样正确修改密码。

将refer修改成本地ip,同样成功修改密码。

所以得出结论,refer只要包含host就可成功修改密码。

思考Medium等级攻击失败的原因:关键是在构造的链接上,因为refer总是和构造的链接一样,要让链接包含DVWA的host字段,而前面的127.0.0.1无法改变,所以在网站根目录下构造一个与host相同的文件夹,将构造的html文件放到该该文件夹下,这样refer就包含了host字段。

如图所示,访问新的链接,跳转到DVWA的页面,密码成功修改。

High等级:

对比发现medium等级的数据包比high等级的数据包,发现high的数据包多了user_token参数,它是来自上一个响应包中,而且每次修改密码,它都是变化的,所以使用low和medium 方法都没有办法利用了,需要结合XSS漏洞获取页面中的user_token参数,进行CSRF攻击

注:user_token和CSRF_token这一类随机变化的参数就是为了防止CSRF攻击的,它保证了攻击者无法猜测到所有的参数,统称为CSRF token

漏洞修复:

校验refer(这里的medium等级采用的校验refer,但没有校验完全,知校验了是否包含域名,存在绕过)

随机token (hige等级的防御方法)

验证码(牺牲了用户体验,防护CSRF攻击)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
首先,我们需要在本地搭建一个DVWA环境。DVWA是一个漏洞练习平台,可以用于学习和测试Web应用程序的安全性。您可以从以下网站下载DVWA并进行安装:https://github.com/ethicalhack3r/DVWA。 接下来,我们需要绕过CSRF-token进行攻击。CSRF-token是一种防止CSRF攻击的措施,它是一个随机生成的字符串,用于验证请求是否来自合法的来源。在DVWA中,我们可以通过修改一个cookie来绕过CSRF-token。 下面是具体的攻击步骤: 1. 打开DVWA,登录并进入CSRF实验页面。 2. 在Chrome浏览器中打开开发者工具,切换到“Network”选项卡,勾选“Preserve log”选项。 3. 在实验页面中点击“View Source”按钮,查看页面源代码。 4. 在源代码中找到与CSRF-token相关的代码,我们可以看到以下代码: ``` <input type="hidden" name="user_token" value="<?php echo $_SESSION['user_token']; ?>"> ``` 5. 复制CSRF-token,它通常位于name="user_token"的input标签中,value属性的值为一个长字符串。 6. 在开发者工具中找到与此页面对应的请求,点击它打开请求详情。 7. 在请求详情中找到Cookie选项卡,找到名为“PHPSESSID”的cookie并复制它的值。 8. 使用一个新的浏览器标签打开一个在线表单生成器,例如:https://www.123formbuilder.com/free-form-templates/Online-Order-Form-3578911/。 9. 在表单生成器中创建一个POST表单,将请求方法设置为POST,并填写以下表单字段: ``` action: http://your-dvwa-site.com/vulnerabilities/csrf/ amount: 1000 ``` 10. 在开发者工具中找到此页面对应的请求,复制请求头中的所有内容。 11. 使用curl或其他工具发送POST请求,将以上内容作为请求头发送,例如: ``` curl -X POST 'http://your-dvwa-site.com/vulnerabilities/csrf/' \ -H 'Cookie: PHPSESSID=your-session-id-here' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'Referer: http://your-dvwa-site.com/vulnerabilities/csrf/' \ -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' \ -H 'Upgrade-Insecure-Requests: 1' \ -H 'Origin: http://your-dvwa-site.com' \ -H 'Accept-Encoding: gzip, deflate' \ -H 'Accept-Language: en-US,en;q=0.9' \ -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' \ --data 'user_token=your-csrf-token-here&amount=1000&action=transfer' ``` 12. 您应该会看到成功的响应。 总之,这个实验展示了CSRF攻击的危害性以及如何绕过CSRF-token进行攻击。在实际应用中,我们应该采取更加安全的措施来防止CSRF攻击,例如使用双重身份验证或者更加严格的CSRF-token验证。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值