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许可证
标签:后端开发, 逆向工具