共计 1638 个字符,预计需要花费 5 分钟才能阅读完成。
背景痛点:传统抓包工具的局限性
在 API 开发和调试过程中,Token 的抓包和分析是常见需求。传统工具如浏览器开发者工具或 Wireshark 存在以下问题:

- 难以过滤出 Token 相关请求
- 无法轻松修改和重放请求
- 对 HTTPS 流量的解析不够友好
- 缺乏请求历史记录和对比功能
这些问题使得 Token 调试变得低效且容易遗漏关键请求。
Burp Suite 核心功能简介
Burp Suite 作为专业的 Web 安全测试工具,提供了以下对 Token 调试特别有用的功能:
- Proxy:拦截和修改 HTTP/HTTPS 请求
- Repeater:重复发送和修改请求
- Intruder:自动化参数测试
- Sequencer:分析 Token 的随机性
- Decoder:编码 / 解码数据
详细配置步骤
1. 设置代理和证书安装
- 打开 Burp Suite,进入 Proxy → Options
- 确认代理监听地址(默认 127.0.0.1:8080)
- 在浏览器中配置相同代理设置
- 访问 http://burp 下载 CA 证书
- 安装证书到系统信任存储
2. 过滤 Token 相关请求的技巧
在 Proxy → HTTP history 中使用以下过滤表达式:
urlencoded&&(header="authorization"||body="token"||path="oauth")
这个表达式会筛选出包含 Token 的请求,无论是头部、体部还是 URL 路径中。
3. HTTPS 流量解密方法
- 确保已正确安装 CA 证书
- 在 Proxy → Options → SSL pass through 中移除所有规则
- 对于移动端抓包,需要在设备上安装 Burp 证书
- 遇到 SSL 错误时,检查时间同步和证书信任链
实战案例:OAuth2.0 Token 流程分析
以典型的 OAuth2.0 授权码流程为例:
- 拦截授权请求:/oauth/authorize?response_type=code
- 观察 302 重定向,获取授权码
- 拦截 Token 交换请求:/oauth/token
- 分析返回的 access_token 和 refresh_token
- 使用 Repeater 重放 Token 验证请求
关键观察点:
- Token 生成参数(scope, client_id 等)
- Token 有效期(expires_in)
- 使用的签名算法
避坑指南
常见配置错误
- 代理不工作:检查防火墙设置和代理配置
- HTTPS 无法解密:确认 CA 证书安装正确
- 请求丢失:调整 Proxy → Options 中的缓冲大小
- 移动端抓包失败:确保设备和电脑在同一网络
解决方案
- 使用
curl -v --proxy http://127.0.0.1:8080测试代理 - 重置 SSL 证书并重新安装
- 对于 SPDY/HTTP2 流量,启用相应的解码选项
安全考量
使用 Burp Suite 时需注意:
- 仅在测试环境使用,避免生产环境数据泄露
- 定期更新 Burp Suite 版本
- 测试完成后关闭代理
- 妥善保管抓包数据
自动化分析示例
以下 Python 代码可以解析 Burp 导出的请求历史:
import json
from urllib.parse import parse_qs
def analyze_tokens(har_file):
with open(har_file) as f:
data = json.load(f)
tokens = []
for entry in data['log']['entries']:
url = entry['request']['url']
if 'token' in url.lower():
tokens.append({
'url': url,
'method': entry['request']['method'],
'params': parse_qs(entry['request'].get('postData', {}).get('text', ''))
})
return tokens
结语
通过本文介绍的方法,开发者可以高效地调试 Token 相关 API。建议读者尝试在自己的项目中应用这些技巧,特别是结合 Repeater 和 Intruder 模块进行深入测试。记住,理解 Token 的生命周期是确保 API 安全的关键一步。
正文完
发表至: 网络安全
近一天内
