exorrtech/exorr-prompt-fuzzer
GitHub: exorrtech/exorr-prompt-fuzzer
针对 LLM 接口的自动化 prompt injection 与 jailbreak 安全测试工具,帮助红队在授权环境下评估 AI 模型的防御能力。
Stars: 0 | Forks: 0
# EXORR Prompt Fuzzer
[](https://www.python.org/downloads/)
[](LICENSE)
[](https://github.com/exorrtech/exorr-prompt-fuzzer)
[](https://github.com/exorrtech/exorr-prompt-fuzzer/actions/workflows/ci.yml)
**专为红队设计的自动化 LLM prompt injection 测试工具。**
EXORR Prompt Fuzzer 是一款安全测试工具,可针对 LLM endpoint 自动化执行 prompt injection、jailbreak 和安全绕过测试。它内置了涵盖 5 种攻击类别的 19 个 payload、基于启发式的响应分类机制,以及多格式报告生成功能——专为 AI 红队作战量身打造。
## 功能
- **19 个内置 payload** 涵盖 5 种攻击类别(injection、jailbreak、extraction、bypass、encoding)
- **启发式响应分类** —— 自动检测成功的 injection 与拒绝行为
- **自定义 payload 支持** —— 加载您自己的 JSON payload 或整个目录
- **类别过滤** —— 在扫描期间精准定位特定的攻击类别
- **严重性评分** —— 针对每个结果进行 critical / high / medium / low 级别分类
- **多格式报告** —— 支持 JSON、Markdown 和 HTML 输出,并提供暗色主题的 HTML 报告
- **OpenAI 兼容** —— 适用于任何兼容 chat completions 的 endpoint
- **Dry-run 模式** —— 无需发送请求即可预览 payload
- **可配置的速率限制** —— 可调整请求间的延迟时间
- **CLI 优先设计** —— 单条命令即可完成扫描,无需额外配置
## 技术栈
`Python 3.9+` `CLI` `JSON/Markdown/HTML 报告`
## 安装说明
```
# 克隆并以 editable mode 安装
git clone https://github.com/exorrtech/exorr-prompt-fuzzer.git
cd exorr-prompt-fuzzer
pip install -e .
# 或直接安装
pip install -e .
```
需要 Python 3.9+ 和 `requests` 库(将自动安装)。
如需进行开发:
```
pip install -e ".[dev]"
```
## 用法
### Dry Run —— 预览 Payload
列出所有内置的 payload,而不发送任何请求:
```
exorr-prompt-fuzzer --target https://api.openai.com/v1/chat/completions --dry-run
```
### 完整扫描
针对目标 endpoint 运行全部 19 个内置 payload:
```
exorr-prompt-fuzzer \
--target https://api.openai.com/v1/chat/completions \
--api-key sk-... \
--model gpt-3.5-turbo \
--verbose \
--format html \
--output report.html
```
### 自定义 Payload
加载您自定义的 payload 文件并按类别进行过滤:
```
exorr-prompt-fuzzer \
--target https://api.openai.com/v1/chat/completions \
--api-key sk-... \
--payloads ./my-payloads.json \
--categories injection,jailbreak \
--delay 2.0 \
--format markdown \
--output results.md
```
### CLI 选项
| Flag | Description |
|------|-------------|
| `-t, --target` | 目标 LLM endpoint URL(必填) |
| `-k, --api-key` | API key(或设置 `TARGET_API_KEY` 环境变量) |
| `-m, --model` | 模型名称(默认:`gpt-3.5-turbo`) |
| `-p, --payloads` | 自定义 payloads JSON 文件的路径 |
| `-c, --categories` | 以逗号分隔的待测试类别 |
| `-n, --count` | 最多发送的 payload 数量(0 = 全部) |
| `--delay` | 请求间的延迟时间(秒)(默认:1.0) |
| `--timeout` | 请求超时时间(秒)(默认:30) |
| `-o, --output` | 输出文件路径 |
| `--format` | 报告格式:`json`、`markdown`、`html`(默认:`json`) |
| `--severity-threshold` | 包含结果的最低严重性级别:`low`、`medium`、`high`、`critical` |
| `--system-prompt` | 在 fuzz 之前注入的自定义 system prompt |
| `--dry-run` | 仅显示 payload 而不发送请求 |
| `--verbose` | 扫描期间输出详细日志 |
| `-v, --version` | 显示版本号 |
## Payload 类别
| Category | Count | Severity Range | Description |
|----------|-------|----------------|-------------|
| **injection** | 3 | high | 直接指令覆盖、角色切换、多轮对话操纵 |
| **jailbreak** | 4 | critical–high | DAN 变体、邪恶双胞胎(evil twin)、翻译器绕过(translator bypass)、角色扮演 |
| **extraction** | 3 | critical–high | System prompt 提取、知识探测、token 泄露 |
| **bypass** | 4 | medium | 上下文溢出、格式化漏洞利用、假设性情境设定、学术性情境设定 |
| **encoding** | 3 | low–medium | Base64、ROT13、十六进制(hex)以及 Unicode 混淆技术 |
共有 19 个内置 payload。可通过 JSON 文件添加无限量的自定义 payload。
## 输出格式
### JSON
包含完整扫描元数据、统计摘要以及每个 payload 详细结果的结构化报告:
```
{
"scanner": "exorr-prompt-fuzzer",
"version": "1.0.0",
"summary": { "total_payloads": 19, "vulnerable": 3, "safe": 16 },
"results": [...]
}
```
### Markdown
具备严重性分级和漏洞细节、易于阅读的报告——非常适合用于文档记录和 issue 跟踪。
### HTML
具备严重性颜色标识和响应式布局的暗色主题独立 HTML 报告——可直接用于分享或存档。
## 自定义 Payload 格式
创建一个包含您自定义 payload 的 JSON 文件:
```
[
{
"name": "My Custom Injection",
"category": "injection",
"severity": "high",
"prompt": "Your custom prompt payload here..."
}
]
```
或者将其包装在一个对象中:
```
{
"payloads": [
{ "name": "...", "category": "...", "severity": "...", "prompt": "..." }
]
}
```
请参阅 [`payloads/example-custom.json`](payloads/example-custom.json) 获取模板。
## 项目结构
```
exorr-prompt-fuzzer/
├── pyproject.toml
├── README.md
├── LICENSE
├── .gitignore
├── payloads/
│ └── example-custom.json
├── exorr_prompt_fuzzer/
│ ├── __init__.py
│ ├── __main__.py
│ ├── cli.py # CLI entry point and argument parsing
│ ├── engine.py # Core fuzzing engine and response classifier
│ ├── payloads.py # 19 built-in payloads + custom payload loader
│ └── report.py # JSON / Markdown / HTML report generator
└── tests/
├── __init__.py
├── test_engine.py # Engine classification tests
├── test_payloads.py # Payload loader tests
└── test_report.py # Report generation tests
```
## 运行测试
```
pip install -e ".[dev]"
pytest -v
```
包含 13 个测试,涵盖了引擎分类、payload 加载和报告生成功能。
## 免责声明
本工具仅供**授权的安全测试**使用。请仅在拥有所有权或获得明确测试授权的系统上使用 EXORR Prompt Fuzzer。未经授权的测试可能会违反服务条款或您所在司法管辖区的法律法规。
## 许可协议
[MIT License](LICENSE) — ∅ EXORR
**∅ ∅ EXORR**
*与虚无同行。*
标签:Python, 域名收集, 大语言模型安全, 安全规则引擎, 文档结构分析, 无后门, 机密管理, 红队评估, 逆向工具