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:环境配置**
1. **浏览器代理设置**
- 打开Burp → `Proxy` → `Options` → 记录代理端口(默认`127.0.0.1:8080`)
- 浏览器配置相同代理(安装Burp证书以拦截HTTPS流量)
```bash
# 导出证书
访问 http://burp/cert 下载cacert.der → 导入浏览器信任库
```
2. **作用域设置(Target → Scope)**
- 添加目标AI系统域名/IP(如 `*.ai-company.com`)避免干扰非目标流量
#### **步骤2:拦截测试(Proxy模块)**
1. **拦截模型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"}
```
2. **篡改关键参数**
- 修改`image`字段:替换为**对抗样本Base64**(通过ART生成)
- 注入恶意负载:`{"image":"' OR 1=1-- -"}` 测试SQL注入
- 破坏数据结构:删除闭合引号、插入超长字符串 (>10MB)
#### **步骤3:深度重放测试(Repeater模块)**
1. 从`Proxy`或`History`右键发送请求到`Repeater`
2. **实验对抗攻击**:
- 多次修改`image`参数,观察模型返回标签和置信度变化
- 添加头部`X-API-Key: 恶意值`测试认证绕过
3. **边界测试**:
- 发送空值:`{"image": null}`
- 非法类型:`{"image": 12345}`
#### **步骤4:自动化Fuzzing(Intruder模块)**
**场景:测试模型输入验证缺陷**
1. 从历史记录右键 → `Send to Intruder`
2. **标记攻击位置**:
- 选择`image`参数值 → 点击`Add §`(如 `{"image":"§base64_data§"}`)
3. **选择攻击类型**:
- `Sniper`:单参数轮替测试(常用)
- `Cluster bomb`:多参数组合测试(如同时Fuzz `image` + `model_id`)
4. **载入Payload**:
- `Payloads` → 选择预定义字典或自定义:
```python
# 常见危险Payload
../../etc/passwd
<script>alert(1)</script>
{"malicious_json": true}
```
- 使用`Payload Processing`将文本转为Base64(适配图像API)
5. **结果分析**:
- 排序`Status`/`Length`列 → 查找异常响应(如`500错误`或异常延迟)
#### **步骤5:漏洞扫描(Scanner模块 - Pro版)**
1. 右键目标API → `Active Scan`
2. **重点检测项**:
- **注入漏洞**:SQLi/NoSQLi/命令注入(尤其关注输入参数)
- **敏感信息泄露**:API密钥、训练数据在响应中暴露
- **配置错误**:CORS头暴露、HTTP方法滥用(如PUT/DELETE未禁用)
---
### **三、 AI系统专项测试技巧**
#### 1. **对抗样本测试流程**
```mermaid
graph LR
A[生成对抗样本] --> B(编码为Base64)
B --> C{通过Burp Proxy发送}
C --> D[观察响应]
D -->|分类错误| E[攻击成功]
D -->|正常分类| F[尝试增强扰动]
```
#### 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"]
}
]
}
```
---
### **五、 注意事项**
1. **法律合规**:
- 仅测试授权目标,获取书面许可
2. **资源控制**:
- 避免对生产环境模型发起高强度Fuzzing(可能导致服务瘫痪)
3. **敏感数据处理**:
- 开启`Project options → Misc → Mask values`隐藏响应中的敏感信息
4. **性能优化**:
- 设置`Project options → Connections → Timeouts`防止阻塞
> **专业提示**:结合**Logger++** 插件记录所有流量,用**Search**功能快速定位`/api`相关请求,高效分析模型交互行为。
掌握这些技巧,你已能系统性评估AI系统的Web接口安全。实际测试中需根据目标架构灵活组合模块——例如用`Proxy`+`Repeater`手动探针高风险功能,再用`Intruder`自动化覆盖输入向量。