'绕过DVWA的token'

使用宏绕过CSRF TOKEN验证

1,先将DVWA的security调为high
2,选取CSRF输入密码,然后抓包


3,发包到Repeater模块

4,点击Go查看响应,第一次token响应为200 OK,所以这时再点击一次Go,
5,发现token失效,302,重定向到index.php页面

录制宏

宏的管理界面位于Project Options → Sessions,点击Add,新建一个宏

从HTTP请求记录中选择获取CSTF TOKEN的请求,选择后确定

点击右边的Configure item进行下一步设置

宏设置页面,指定参数的位置。点击右下角Add进行参数添加

输入参数名称(需和密码修改请求中的参数名一致),使用指定开始和结束位置的方式,
在请求响应内容中找到token,鼠标选择保持高亮,点击确定。然后在
Configure Macro Item、Macro Editor全部点击确定,完成宏的录制。

完成后可以在宏列表框中看到刚才录制的宏

填写规则描述(使用便于区分的文字内容),添加一个动作,在请求之前运行一个宏。

动作编辑中,选择刚才录制的宏,选择只更新指定的参数,输入Token产生名称user_token,点击确定。

完成动作编辑后,回到会话操作规则编辑界面,选择Scope,设置这个宏的作用域。

完成新增规则的添加

验证规则是否生效
回到Repeater页面(确保会话登陆有效,如超时,请重新登陆),再次发送密码修改的请求包,可以看到在提交请求后,user_token值自动更新,密码修改成功。

第二种方法

1,准备工作,配置运行环境
Python
下载地址:http://www.jython.org/downloads.html
下载Standalone Jar版本,下载后将Jar文件放置在Burpsuite文件夹。
Ruby
下载地址:http://jruby.org/download
下载Complete Jar 版本,下载后将Jar文件放置在Burpsuite文件夹。

2,插件安装路径
Brup的默认缓存路径在C盘,为避免重装系统造成配置文件丢失和便于转移Burpsuite路径,先在User Options里更改临时文件路径。

安装插件CSRF Token Tracker
它是用于渗透测试过程中CSRF Token的自动更新

security还是选择high
输入新密码,抓包

在Repeater中重放包,第一次可以成功,第二次由于user_token失效,返回302,密码修改失败

下面开始使用CSRF Token Tracker自动更新Token:
设置CSRF Token Tracker:添加一条规则,并勾选生效。
由于DVWA密码修改请求包中的CSRF TOKEN的名称和服务器响应包中一致,只需要填写Name即可

再回到Repeater,重新发送密码修改包

可以看到密码修改成功,请求包中的CSRF TOKEN自动更新(可在Logger++中查看)。