第2章 接口安全测试环境搭建
做接口安全测试,工具就是你的双手。Burp Suite、Postman、curl 这三件套,几乎覆盖了所有场景。我个人习惯先搭环境再动手,因为中间的代理和证书配置特别容易踩坑。这一章我就带你一步步装好,配好,跑通。
2.1 工具选型与定位
先聊一下各自定位。Burp Suite 是拦截代理,专门抓HTTPS流量,修改和重放都很方便。Postman 擅长构造请求、组织测试用例,适合做自动化验证。curl 则轻量,适合脚本集成和快速调试。等保合规要求下,这三者各司其职:Burp 做中间人攻击测试,Postman 做合规检查脚本,curl 验证边界情况。
| 工具 | 核心能力 | 等保场景 |
|---|---|---|
| Burp Suite Community | HTTP/HTTPS 拦截与修改 | 敏感信息泄露、会话劫持测试 |
| Postman | 请求构造、集合执行 | 权限绕过、参数校验自动化 |
| curl | 命令行请求,脚本集成 | 免登录访问、时间盲注等 |
2.2 安装工具
我建议顺序是:先装 Burp Suite,再装 Postman,最后检查 curl 是否已存在。因为 Burp 的代理是整个环境的核心。
- Burp Suite:下载 Community 版,Windows 直接 .exe 安装。启动后默认端口 8080。我第一次用时没改端口,结果跟本地服务冲突了……所以建议检查一下 8080 有没有被占用。
- Postman:直接装桌面版。安装后不用急着开,等代理配好再启动。
- curl:Windows 10/11 自带 curl.exe,命令行运行
curl --version验证。Linux/Mac 预装。如果没有,去官网下载二进制。
2.3 配置代理
说白了,就是让流量全部经过 Burp 的“眼睛”。
- Burp 端设置:Proxy → Proxy Settings → Add listener。IP:127.0.0.1,端口:8080。勾上“Support invisible proxying”在某些场景下有用。
- 浏览器代理:我习惯用 Chrome 的 SwitchyOmega 插件,新建一个代理配置:HTTP 127.0.0.1:8080。访问 http://burp 可测试连通性。
- Postman 代理:File → Settings → Proxy,勾上“Use custom proxy”,写 HTTP 127.0.0.1:8080。不勾 HTTPS 的那项——证书问题容易烦,后面我们单独配。
提示:Postman 也支持命令行参数 -x,在做自动化测试时可以动态传代理地址。
2.4 证书配置
等保测试经常涉及 HTTPS 接口,Burp 必须装上自己的 CA 证书才能解密流量。这一步是新手最容易翻车的地方。
- 导出证书:浏览器配置代理后,访问 http://burp → CA Certificate → 下载 .der 文件。
- 浏览器导入:Chrome 设置 → 隐私与安全 → 安全 → 管理证书(受信任的根证书颁发机构)→ 导入。我遇到过 Windows 系统提示证书已损坏,其实是格式不对,记得选 “Base64 编码 X.509 (.cer)” 重新导出。
- Postman 导入证书:Settings → Certificates → CA Certificates → Add。选择刚才的 .der 文件。
- 系统信任:Linux 下扔到 /usr/local/share/ca-certificates/,然后 update-ca-certificates。Mac 双击证书后在钥匙串里改成“始终信任”。
注意:测试完成后务必移除该测试证书,否则浏览器会一直信任 Burp 这个中间人,留下安全隐患。
2.5 验证环境是否就绪
来,跑几个命令确认每个工具都能正常工作。
# 1. Burp 上开启 Intercept 为 On,浏览器访问 https://www.baidu.com
# 2. 在 Burp 的 HTTP history 里应该能看到 HTTPS 请求,并且 Request 和 Response 都是明文
# 3. curl 通过代理验证
curl -v -x http://127.0.0.1:8080 https://api.example.com/health
# 4. Postman 发一个请求,在 Burp 里确认它也过来了
我曾经有一次死活看不到流量,最后发现是 Burp 的监听器只绑了 127.0.0.1,而 Postman 用了 localhost(解析为 ::1 走了 IPv6)。把这个绑定改成 0.0.0.0 或者明确用 IPv4 就解决了。
2.6 整体环境关系
下面这张图总结了工具之间的流量走向和证书依赖关系。你可以把它当成一张地图,出了问题按图索骥。
避坑指南
最后聊几个我反复掉进去的坑。
- 端口被占用:启动 Burp 报错 8080 端口被占用?大概率是 Hyper-V 或 Docker 抢了。我一般换成 8888 或 9090。
- 证书不信任:Chrome 会提示 NET::ERR_CERT_AUTHORITY_INVALID。按 2.4 节的步骤重新导入证书,注意要导入到“受信任的根证书颁发机构”,而不是“个人”。
- Postman 不走代理:检查 Postman 设置里是否勾选了“使用系统代理”。如果你配了自定义代理,记得把 HTTPS 代理也填成 HTTP 格式,因为 Burp 的代理端口同时处理 HTTP 和 HTTPS。
- curl 忽略证书:测试时可以用
curl -k跳过验证,但等保合规中必须走完整证书链。最终测试报告里要移除 -k 参数。