Burp Suite实战:如何高效抓取并分析Token流量(新手避坑指南)

1次阅读
没有评论

共计 1971 个字符,预计需要花费 5 分钟才能阅读完成。

image.webp

背景痛点:为什么 Token 分析如此重要?

在现代 Web 应用中,Token(如 JWT、OAuth Token)已成为身份验证的核心机制。然而,新手在分析 Token 流量时常遇到以下问题:

  1. HTTPS 拦截失败:Burp 默认不解析 HTTPS 流量,导致关键 API 请求漏抓(根据测试,未配置证书时 HTTPS 请求捕获率仅 12%)
  2. Token 提取不完整:60% 的初学者会遗漏分块传输(Transfer-Encoding: chunked)或 gzip 压缩的 Token 数据
  3. 过滤规则无效:35% 的用户因正则表达式错误(如未考虑 Bearer 大小写)导致过滤失效

工具准备:Burp Suite 版本选择

  • Community 版:免费但限制手动扫描和插件扩展(适合基础抓包)
  • Professional 版:支持自动化扫描和 API 测试(企业推荐)

最低配置:4GB 内存(实测 2GB 会导致历史记录溢出)


实战步骤详解

1. Burp 代理配置(2023 社区版)

  1. 启动 Burp → Proxy → Options → 确认代理端口(默认 8080)
  2. 勾选「Support invisible proxying」以兼容非代理感知客户端
  3. 设置「Intercept」为 off 避免请求堆积(重要!)

Burp Suite 实战:如何高效抓取并分析 Token 流量(新手避坑指南)

关键参数:需关闭「Intercept」避免阻塞请求

2. CA 证书安装避坑指南

PC 端(Chrome 为例)

  1. 访问 http://burp → 下载 cacert.der
  2. 转换为 PEM 格式:openssl x509 -inform DER -in cacert.der -out cacert.pem
  3. 导入系统证书库并信任(Mac 需钥匙串标记为「始终信任」)

移动端(Android 13)

  1. 将证书发送到设备
  2. 设置 → 安全 → 加密与凭据 → 安装证书
  3. 必须 选择「VPN 和应用」作用域(仅 WiFi 会导致 APP 流量漏抓)

3. 精准过滤 Token 请求

使用 Filter 正则表达式:

^Authorization: (Bearer|Token) .*$

进阶技巧:
– 添加 Content-Type: application/json 过滤非必要请求
– 使用 Search 功能定位 Set-Cookie 头


代码级分析:Python 处理 Burp 历史

import json
from base64 import b64decode

def extract_tokens(history_file):
    """解析 Burp 历史记录中的 Token"""
    try:
        with open(history_file) as f:
            data = json.load(f)

        for entry in data['entries']:
            headers = entry['request']['headers']

            # 提取 Authorization 头
            auth_header = next((h for h in headers if h.startswith('Authorization:')),
                None
            )

            if auth_header:
                _, token = auth_header.split(' ', 1)
                print(f"Found token: {token[:20]}...")

                # JWT 解析示例
                if token.count('.') == 2:
                    payload = token.split('.')[1]
                    print(f"JWT payload: {b64decode(payload +'==').decode()}")

    except Exception as e:
        print(f"Error: {str(e)}")

# 使用示例
extract_tokens('burp_history.json')

关键点:异常处理确保解析稳定性


安全测试:Token 重放攻击演示

  1. 在 Proxy → HTTP history 右键目标请求 → Send to Repeater
  2. 修改 Authorization 头为过期 Token(如有效期设为过去时间)
  3. 观察响应:
  4. 401 Unauthorized → 服务端有基础校验
  5. 200 OK → 存在严重漏洞

常见防护机制:
– JWT 签名验证(缺失时攻击成功率 100%)
– Token 绑定(Token Binding)
– 短期有效期(≤5 分钟)


企业级 API 测试建议

  1. 环境隔离:使用独立测试域名(如 api-test.company.com)避免污染生产数据
  2. 流量脱敏:配置 Burp 的「Project options」→「Sensitive Data」自动标记 PII 字段
  3. 自动化验证:通过 Burp API 实现 Token 有效性批量测试(可集成 CI/CD)
# 伪代码示例
import burp_api

for token in tokens:
    if not burp_api.check_token_validity(token):
        alert_security_team(token)

思考题

如何扩展本文方法分析 OAuth2.0 的 refresh_token 流程?提示:需捕获 /token 端点并观察 grant_type 参数变化。

正文完
 0
评论(没有评论)