我们有这样一个网站,登录完成之后,后续的每个请求都会带上jwt(json web token)去访问接口信息
此时,我们希望实现这样一个功能:当我没有带token或者token过期时,能够自动刷新token。那么就要用到我们的session和宏了。
1、定义一个宏(macro),执行获取token的操作:
点击Add后会自动弹出选择框,选择对应获取token的登录操作
确认没问题后,保存宏
2、burpsuite本体不支持添加header,需要下载插件“Add Custom Header"
3、添加session handling规则详情配置
设置session是否有效的判断规则(此处需要按照具体的服务进行分析),下图1是我当前对应服务session无效时的返回值,下图2是对应的规则配置
设置当session无效时,运行宏,并调用插件进行处理
4、配置应用范围scope
我们先只设置Repeater进行测试,并配置对应的服务scope,然后保存规则并启用
5、在插件中提取token并设置到header中
设置header名称、正则匹配规则,并点击Update Preview更新
6、在Repeater测试
将认证头部Authorization删除,点击Send,发现自动刷新并将Authorization附到最后面