Postman+Burp协同测试REST API身份验证漏洞
1. 协同测试原理与价值
Postman提供灵活的API请求构建能力,而Burp Suite擅长流量拦截与深度分析。二者协同可实现:
-
动态篡改:通过Burp拦截Postman发出的请求,实时修改身份验证参数(如Token、Cookie);
-
自动化验证:利用Burp插件(如Autorize)自动化检测垂直越权漏洞;
-
变量联动:Postman环境变量管理测试数据,Burp分析异常响应,形成闭环测试流程。
2. 环境配置关键步骤
2.1 代理通道搭建
-
Burp代理设置:监听
8080端口(默认),关闭请求拦截避免干扰; -
Postman代理配置:
设置 → Proxy → 启用全局代理
地址:127.0.0.1 端口:8080确保Burp范围(Scope)包含目标API域名。
-
证书安装:
-
导出Burp的CA证书(
PortSwiggerCA.cer); -
在Postman设置中导入证书,解决HTTPS拦截报错。
-
2.2 工具链集成
-
动态变量注入:在Postman预请求脚本中生成随机Token,模拟异常凭证:
// 生成随机Token并存入环境变量
pm.environment.set("maliciousToken", Math.random().toString(36).substring(2));在请求头中调用
Authorization: Bearer {{maliciousToken}}。 -
Burp插件联动:启用Autorize插件,自动重放请求并比对不同权限用户的响应差异。
3. 身份验证漏洞测试场景
3.1 令牌失效测试
| 测试类型 | Postman操作 | Burp检测点 |
|---|---|---|
| 空令牌 | 删除 | 响应码 |
| 过期令牌 | 使用历史失效Token | 响应体包含 |
| 结构篡改 | 修改JWT签名部分 | 响应长度异常或数据泄露 |
3.2 垂直越权检测
-
使用普通用户A登录,捕获其API请求;
-
在Burp中右键发送至Autorize;
-
切换Postman至管理员账号B,复制其Token到Autorize;
-
观察普通用户请求是否以管理员身份执行成功(响应码
200但数据越权)。
3.3 多租户隔离测试
-
漏洞场景:用户A访问用户B的资源ID(如
GET /api/orders/{orderId}); -
测试脚本:
// 在Postman中遍历不同租户ID const tenantIds = ["tenantA", "tenantB"]; tenantIds.forEach(id => { pm.sendRequest(`https://api.com/data?tenant=${id}`, (res) => { pm.test(`租户${id}隔离验证`, () => pm.expect(res.code).to.eql(403)); }); });通过响应码
403验证隔离机制。
4. 测试效能优化建议
-
持续监控:在Burp中设置差异对比规则(如响应长度±10%触发告警);
-
参数模糊测试:利用Postman的
Fork功能批量发送畸形参数(如SQL注入' OR 1=1--); -
自动化回归:导出Postman测试集为JSON,集成至CI/CD流水线。
精选文章:
软件测试进入“智能时代”:AI正在重塑质量体系
Python+Playwright+Pytest+BDD:利用FSM构建高效测试框架
https://blog.csdn.net/2501_94438352/article/details/155354563?spm=1011.2415.3001.10575&sharefrom=mp_manage_link







