Burp Suite 是渗透测试领域事实上的标准工具,尤其擅长Web应用与API安全测试。针对AI系统,它主要用于测试模型API、管理后台等Web接口。以下是专业级使用指南:
一、 核心模块与功能概览
模块 | 核心功能 | AI测试重点 |
---|---|---|
Proxy | 拦截/修改HTTP(S)请求响应,充当浏览器与服务器间的中间人 | 拦截模型API请求,篡改输入数据测试鲁棒性 |
Repeater | 手动重放请求,实时修改参数反复测试 | 精细调试对抗样本、异常输入对模型的影响 |
Intruder | 自动化参数爆破(支持Sniper/Battering ram/Pitchfork/Cluster bomb四种攻击模式) | Fuzzing模型输入参数,探测注入漏洞或边界条件崩溃 |
Scanner | (Pro版) 自动化漏洞扫描(SQLi/XSS/SSRF等) | 快速发现API基础漏洞 |
Decoder | 数据编码/解码(Base64/URL/Hex等) | 处理AI API中的编码数据(如图像转Base64) |
Comparer | 对比请求/响应差异 | 分析模型对不同输入的响应变化(如对抗样本成功时的响应特征) |
二、 关键操作流程详解
步骤1:环境配置
-
浏览器代理设置
-
打开Burp →
Proxy
→Options
→ 记录代理端口(默认127.0.0.1:8080
) -
浏览器配置相同代理(安装Burp证书以拦截HTTPS流量)
# 导出证书 访问 http://burp/cert 下载cacert.der → 导入浏览器信任库
-
-
作用域设置(Target → Scope)
- 添加目标AI系统域名/IP(如
*.ai-company.com
)避免干扰非目标流量
- 添加目标AI系统域名/IP(如
步骤2:拦截测试(Proxy模块)
-
拦截模型API请求
-
浏览器访问AI应用 → 触发模型预测(如上传图像分类请求)
-
Burp自动拦截请求(如
POST /api/v1/predict
)
http
POST /api/v1/predict HTTP/1.1 Content-Type: application/json {"image": "base64_encoded_data", "model_id": "resnet50"}
-
-
篡改关键参数
-
修改
image
字段:替换为对抗样本Base64(通过ART生成) -
注入恶意负载:
{"image":"' OR 1=1-- -"}
测试SQL注入 -
破坏数据结构:删除闭合引号、插入超长字符串 (>10MB)
-
步骤3:深度重放测试(Repeater模块)
-
从
Proxy
或History
右键发送请求到Repeater
-
实验对抗攻击:
-
多次修改
image
参数,观察模型返回标签和置信度变化 -
添加头部
X-API-Key: 恶意值
测试认证绕过
-
-
边界测试:
-
发送空值:
{"image": null}
-
非法类型:
{"image": 12345}
-
步骤4:自动化Fuzzing(Intruder模块)
场景:测试模型输入验证缺陷
-
从历史记录右键 →
Send to Intruder
-
标记攻击位置:
- 选择
image
参数值 → 点击Add §
(如{"image":"§base64_data§"}
)
- 选择
-
选择攻击类型:
-
Sniper
:单参数轮替测试(常用) -
Cluster bomb
:多参数组合测试(如同时Fuzzimage
+model_id
)
-
-
载入Payload:
-
Payloads
→ 选择预定义字典或自定义:python
# 常见危险Payload ../../etc/passwd <script>alert(1)</script> {"malicious_json": true}
-
使用
Payload Processing
将文本转为Base64(适配图像API)
-
-
结果分析:
- 排序
Status
/Length
列 → 查找异常响应(如500错误
或异常延迟)
- 排序
步骤5:漏洞扫描(Scanner模块 - Pro版)
-
右键目标API →
Active Scan
-
重点检测项:
-
注入漏洞:SQLi/NoSQLi/命令注入(尤其关注输入参数)
-
敏感信息泄露:API密钥、训练数据在响应中暴露
-
配置错误:CORS头暴露、HTTP方法滥用(如PUT/DELETE未禁用)
-
三、 AI系统专项测试技巧
1. 对抗样本测试流程

2. 模型元数据泄露检测
-
步骤:
-
在
Proxy
历史记录中搜索关键词:regex
(model_architecture|training_data|version|git_commit)
-
检查
/robots.txt
或/.env
中是否暴露调试接口
-
3. API滥用测试
-
Intruder配置:
-
Payload类型 :
Numbers
(生成1-10000序列) -
攻击位置 :
api_key
参数 → 暴力破解密钥 -
速率限制绕过 :添加头部
X-Forwarded-For: 随机IP
-
四、 高阶配置
1. 插件扩展(BApp Store)
插件 | 用途 |
---|---|
Autorize | 自动测试权限提升漏洞 |
Flow | 可视化多步骤AI业务流程 |
Custom Payloads | 加载对抗样本数据集进行批量测试 |
2. 命令行自动化(支持CI/CD)
bash
java -jar burpsuite_pro.jar --project-file=project.burp --config=scan.json
json
// scan.json 配置示例
{
"scan_configurations": [
{
"name": "AI API Scan",
"urls": ["https://ai-api/predict"],
"scan_checks": ["SQL Injection", "XSS"]
}
]
}
五、 注意事项
-
法律合规:
- 仅测试授权目标,获取书面许可
-
资源控制:
- 避免对生产环境模型发起高强度Fuzzing(可能导致服务瘫痪)
-
敏感数据处理:
- 开启
Project options → Misc → Mask values
隐藏响应中的敏感信息
- 开启
-
性能优化:
- 设置
Project options → Connections → Timeouts
防止阻塞
- 设置
专业提示 :结合Logger++ 插件记录所有流量,用Search 功能快速定位
/api
相关请求,高效分析模型交互行为。
掌握这些技巧,你已能系统性评估AI系统的Web接口安全。实际测试中需根据目标架构灵活组合模块------例如用Proxy
+Repeater
手动探针高风险功能,再用Intruder
自动化覆盖输入向量。