本文仅作为技术讨论及分享,严禁用于任何非法用途。
前言
在WEB渗透中经常可以看到页面存在一次性token
校验的情况,即请求包中包含token
,而token
值需通过其它页面获取,导致burpsuite
抓包后无法重放。
开始
下面以一个简单例子来做个说明。目标网站如下,页面存在一个图片验证码,题目要求暴力破解得到账号密码。这题可以有多种方式实现,这里以burpsuite
宏进行实验。
发现
- 目标URL为:
http://1.1.1.1/c/hdyzma/welcome.php
,抓个包测试一下,发现其会对token
参数校验,拒绝重放的数据包。 - 在登陆页面
http://1.1.1.1/c/hdyzma/
可发现token
值: - 通过上面的发现,可以使用
burpsuite
的宏功能自动把登陆页的token
值抓取出来填入登陆请求
创建Macros
- 创建
Macros
,获取token
值 - 在
Macro Recorder
中选择包含要获取的token
的页面 - 配置
Macros
用鼠标选中token
值,burpsuite
会自动填写开始标记以及结束标记,并且写上Parameter name
为token
,注意这里的参数名token
是与要爆破页面里的token
名称一致:
定义Macro
描述,方便区分:
创建Session Handling Rules
然后在Session Handling Rules里面新建一条规则:
设置一个名字,这里叫update_token
:
选中刚刚录制好的宏,并且设置要更新的参数名,这里是token
:然后是设置宏的影响范围,因为我们只需要暴力破解账号密码,所以
Tools Scope
这里只选中Repeater
、Intruder
就行了,其它模块可根据实际需要勾选:
暴力破解
- 回到
Repeater
,点击Go
重新发包,可以看到现在token
参数会自动刷新: - 使用
Intruder
暴力破解账号密码:
因为多线程会同时刷新token
,导致部分请求包拿到的token
已经被刷新了,所以只能设置单线程跑:
成功暴破得到账号admin/123456a
题目源码
源码来自3sNwgeek,附上题目:https://github.com/3sNwgeek/BruteForc_test