DVWA-CSRF通关教程-完结

DVWA-CSRF通关教程-完结

文章目录

Low

页面使用

当前页面上,是一个修改admin密码的页面,只需要输入新密码和重复新密码,即可修改admin密码。

源码分析

Low级别的源码分析上,没有做过多的防御,只需要password_newpassword_conf一致即可通过验证,同时通过GET的方式提交的请求,URL中会有对应的参数和内容。

漏洞利用

构造攻击链接:

复制代码
http://192.168.197.208/DVWA/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#

既然参数是GET方式传递的,那么我们可以直接在URL链接中设置参数,如果用户用登陆过该网站的浏览器(服务器会验证cookie)打开这个链接,那么将直接把参数传递给服务器,因为服务器并没有防CSRF的措施,所以直接可以攻击成功,密码将被改为123456。

PS:如果用户在没有登陆过这个网站的浏览器上打开这个链接,并不会更改密码,而是跳转到登录界面。因为服务器在接受访问时,首先还要验证用户的cookie,如果浏览器上并没有之前登录留下的cookie,那攻击也就无法奏效。

上面的攻击链接太明显的,参数直接就在URL中,这样很容易就会被识破,为了隐藏URL,可以使用生成短链接的方式来实现。
短网址生成器

构造攻击页面

真实CSRF攻击中,攻击者为了隐藏自己的攻击手段,可能构造一个假的页面,然后放在公网上,诱导受害者访问这个页面,如果受害者访问了这个页面,那么受害者就会在不知情的情况下完成了CSRF攻击。

利用burpsuit直接生成攻击页面代码。方法如下:

1、抓取更改密码的数据包,利用engagement tools生成CDRF PoC,访问点击提交之后就可以更改密码。

2、复制生成的html代码即为我们需要的攻击页面代码。

3、访问点击提交之后就可以更改密码。

Medium

源码分析

stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)

代码检查了保留变量HTTP_REFERER (http包头部的Referer字段的值,表示来源地址)是否包含SERVER_NAME(http包头部的 Host 字段表示要访问的主机名)。

正常修改密码的页面,抓包可以发现是携带Referer字段的

伪造的页面,抓包发现不携带Referer字段,由于伪造的页面不携带Referer字段,所以校验会失败,攻击无法完成。

漏洞利用

1、正常修改密码,使用Burpsuite抓取到Referer字段

2、伪造页面,并在访问时通过Burpsuite抓包,在包头部添加Referer字段,字段中只需要携带目标IP地址即可,

构造攻击链接:

复制代码
http://192.168.197.208/DVWA/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#

3、攻击成功

High

源码分析

high级别的源码中加入了Anti-csrf token机制,由checkToken函数来实现,用户每次访问更改密码页面时,服务器会返回一个随机的token,之后每次向服务器发起请求,服务器会优先验证token,如果token正确,那么才会处理请求。所以我们在发起请求之前需要获取服务器返回的user_token,利用user_token绕过验证。

漏洞利用

1、安装CSRF Token Tracker插件

2、抓取数据包,发送到Repeater模块,进入插件之后添加主机和名(名就是token的名字,这里是user_token),还有抓取到的token值也需要添加上去。


3、再重新抓包到重放模块,这时我们会发现不管怎么修改密码,都会返回200,插件里的token值也会自动更新


impossible

源码分析

Impossible级别的源码中也使用验证user_Token和原始密码来防止CSRF,如果没有当前密码无法进行修改密码。db->prepare采用的是PDO模式,防止SQL注入。

相关推荐
虹科网络安全5 小时前
解读CRA横向标准EN 40000系列:从法规文本到工程落地 | CRA合规之路(七)
网络·安全·web安全
Mh7 小时前
别再只会 `find` 了:Map 在前端业务里的真实用法
前端·javascript
DevSecOps选型指南7 小时前
中国版Mythos,为何是悬镜安全灵脉CodeAI?
人工智能·安全
陈随易8 小时前
FFmpeg 9.0 发布,代号 Lei,音视频处理再升级
前端·后端·程序员
爱丶狸8 小时前
Grafana_Zabbix_ImageRenderer_部署与前端操作手册
linux·前端·zabbix·grafana·kylin
用户0595401744611 小时前
把AI对话记忆存储测试从手工改成Playwright+pytest,覆盖率从20%提到96%,回归时间缩短90%
前端·css
kyriewen11 小时前
别再这样写TypeScript了——Code Review中最常见的8个反模式
前端·javascript·typescript
名字还没想好☜11 小时前
Next.js ‘use client‘ 到底加在哪:Server/Client Components 边界与常见报错
开发语言·前端·javascript·react·next.js
德迅云安全杨德俊11 小时前
应用加速:一站式解决企业跨域网络加速与安全双重难题
网络·安全·ddos
午安~婉12 小时前
GitHub Token/ GitHub Stats统计显示图异常
前端·github·vercel·github token