krishanumishra778/prompt-injection-toolkit
GitHub: krishanumishra778/prompt-injection-toolkit
PIT是一款AI/LLM安全测试工具,用于发现和评估LLM系统的安全漏洞。
Stars: 0 | Forks: 0
# 🛡️ PIT — 指令注入工具包
**作者:** Krishanu Kaundilya — CEH大师 | VAPT专家 | 人工智能安全研究员
**栈:** Python · requests
**联系:** Krishanumishra778@gmail.com | [LinkedIn](https://linkedin.com/in/krishanukaundilya)
## 🎯 PIT 测试内容
| 类别 | 负载 | OWASP LLM 风险 |
|---|---|---|
| `injection` | 10 | LLM01 — 指令注入 |
| `jailbreak` | 8 | LLM01, LLM08 — 过度权限 |
| `leak` | 8 | LLM06 — 敏感信息泄露 |
| `dos` | 5 | LLM04 — 模型拒绝服务 |
| **总计** | **31** | LLM01, LLM04, LLM06, LLM08, LLM10 |
## ⚡ 快速开始
```
pip install -r requirements.txt
# 列出所有有效载荷类别
python pit.py --list-categories
# 全面扫描(所有31个有效载荷)
python pit.py -u https://target.com/api/chat --mode all --save
# 仅特定模式
python pit.py -u https://target.com/api/chat --mode injection
python pit.py -u https://target.com/api/chat --mode leak
python pit.py -u https://target.com/api/chat --mode jailbreak
# 带有认证头
python pit.py -u https://target.com/api/chat \
--header "Authorization:Bearer YOUR_TOKEN" \
--mode all --save
# 干运行(查看有效载荷而不发送)
python pit.py -u https://target.com/api/chat --mode all --dry-run
# 自定义输入字段名称
python pit.py -u https://target.com/api/chat --field prompt --mode all
```
## 📋 使用参考
```
usage: pit.py [-h] -u URL [--mode {injection,jailbreak,leak,dos,all}]
[--field FIELD] [--method {POST,GET}] [--header Key:Value]
[--delay DELAY] [--timeout TIMEOUT] [--save]
[--output-dir DIR] [--dry-run] [--list-categories]
options:
-u, --url Target LLM API endpoint (required)
--mode Test category: injection, jailbreak, leak, dos, all
--field JSON field name for user input (default: message)
--method HTTP method POST or GET (default: POST)
--header Extra headers e.g. "Authorization:Bearer TOKEN"
--delay Delay between requests in seconds (default: 1.0)
--timeout Request timeout in seconds (default: 15)
--save Save HTML + JSON report
--output-dir Output directory (default: ./reports)
--dry-run Show all payloads without sending requests
--list-categories List payload categories and OWASP mapping
```
## 🧪 负载类别
### 注入 (`--mode injection`) — LLM01
经典和高级直接/间接指令注入技术:
- 忽略之前的指令
- 通过注入的SYSTEM消息覆盖角色
- 分隔符转义 (`"""`, `---`, `###`)
- 嵌套指令注入(隐藏在良性任务中)
- Markdown注入(LLM02 — 不安全的输出处理)
- 上下文窗口溢出探测
- 通过攻击者控制的数据进行间接注入
- JSON角色结构注入
- 多语言注入绕过
### 解锁 (`--mode jailbreak`) — LLM01, LLM08
限制绕过和角色覆盖尝试:
- DAN(现在可以做任何事情)
- 开发者模式解锁
- 虚构角色扮演(ARIA角色)
- 假设框架绕过
- 通过Base64编码走私令牌
- 老奶奶社会工程学漏洞
- 反向世界逻辑反转
- 指令延续攻击
### 泄露 (`--mode leak`) — LLM06
系统指令和敏感数据提取:
- 直接系统指令请求
- “重复上面所有内容”提取
- 基于摘要的指令反射
- 格式提取攻击(模板披露)
- API密钥/秘密提取
- 训练数据完成(凭证模式)
- 内存/状态PII提取
### DoS (`--mode dos`) — LLM04
令牌耗尽和资源滥用:
- 无限生成请求
- 最大令牌耗尽
- 递归自引用
- 指令洪水(分词器压力)
- 复杂计算滥用
## 📊 输出
扫描后,PIT生成:
**终端输出** — 每个负载的颜色编码结果(易受攻击 / 可疑 / 安全)
**HTML报告** (`--save`) — 包括:
- 摘要统计(易受攻击 / 可疑 / 安全计数)
- OWASP LLM Top 10 风险覆盖表
- 每个测试卡包含发送的负载、响应预览、HTTP状态
**JSON报告** (`--save`) — 用于管道集成的机器可读完整结果
```
reports/
├── pit_report_20250601_143022.html
└── pit_report_20250601_143022.json
```
## 🔍 检测逻辑
PIT使用三层来标记可能受漏洞影响的结果:
**关键词匹配** — 检查响应中的注入指标(例如 `[DAN]:`、`system prompt`、`sk-`、`no restrictions`)
**行为检测** — 标记异常长的响应(DoS指标)或缓慢的响应时间
**可疑模式匹配** — 检测所有类别中的通用LLM披露短语
结果被分类为:
- `易受攻击` — 响应中存在明显的注入指标
- `可能` — 可疑响应,需要手动审查
- `安全` — 未发现指标(不保证安全性)
## 📁 项目结构
```
prompt-injection-toolkit/
├── pit.py ← CLI entry point
├── requirements.txt
├── README.md
├── core/
│ ├── payloads.py ← 31 payloads across 4 categories, OWASP-mapped
│ ├── runner.py ← HTTP sender + response analyzer
│ ├── reporter.py ← HTML + JSON report generator
│ └── utils.py ← Summary printer, category lister
└── reports/ ← Generated reports saved here
```
## 🔗 相关项目
- [nuclei-template-library](https://github.com/krishanukaundilya/nuclei-template-library) — 自定义Nuclei DAST模板
- [recon-automation-tool](https://github.com/krishanukaundilya/recon-automation-tool) — 自动化侦察管道
- [vapt-report-generator](https://github.com/krishanukaundilya/vapt-report-generator) — 专业PDF/HTML VAPT报告
## 📜 许可证
MIT许可证
标签:后端开发, 逆向工具