0%

使用BurpSuite宏获取CSRF TOKEN

本文仅作为技术讨论及分享,严禁用于任何非法用途。

前言

在WEB渗透中经常可以看到页面存在一次性token校验的情况,即请求包中包含token,而token值需通过其它页面获取,导致burpsuite抓包后无法重放。

开始

下面以一个简单例子来做个说明。目标网站如下,页面存在一个图片验证码,题目要求暴力破解得到账号密码。这题可以有多种方式实现,这里以burpsuite宏进行实验。

发现

  1. 目标URL为:http://1.1.1.1/c/hdyzma/welcome.php,抓个包测试一下,发现其会对token参数校验,拒绝重放的数据包。

  2. 在登陆页面http://1.1.1.1/c/hdyzma/可发现token值:
  3. 通过上面的发现,可以使用burpsuite的宏功能自动把登陆页的token值抓取出来填入登陆请求

创建Macros

  1. 创建Macros,获取token
  2. Macro Recorder中选择包含要获取的token的页面
  3. 配置Macros


    用鼠标选中token值,burpsuite会自动填写开始标记以及结束标记,并且写上Parameter nametoken,注意这里的参数名token是与要爆破页面里的token名称一致:

    定义Macro描述,方便区分:

创建Session Handling Rules

  1. 然后在Session Handling Rules里面新建一条规则:

    设置一个名字,这里叫update_token

    选中刚刚录制好的宏,并且设置要更新的参数名,这里是token

  2. 然后是设置宏的影响范围,因为我们只需要暴力破解账号密码,所以Tools Scope这里只选中RepeaterIntruder就行了,其它模块可根据实际需要勾选:

暴力破解

  1. 回到Repeater,点击Go重新发包,可以看到现在token参数会自动刷新:

  2. 使用Intruder暴力破解账号密码:

    因为多线程会同时刷新token,导致部分请求包拿到的token已经被刷新了,所以只能设置单线程跑:

    成功暴破得到账号admin/123456a

题目源码

源码来自3sNwgeek,附上题目:https://github.com/3sNwgeek/BruteForc_test