关于 prompt-injection-test
Prompt Injection Testing 是用于系统测试 LLM 应用提示注入防御的技能,涵盖直接和间接输入路径。它组合攻击意图、技术与规避方式,并输出测试结果、漏洞发现和优先级建议。
主要功能
- 01梳理攻击者可控的输入路径
- 02按 13 种攻击意图进行测试
- 03应用 18 种攻击技术和 20 种规避方式
- 04组合测试矩阵并评估结果
- 05检查五层防御并整理建议
适用场景
- 01测试聊天或 API 输入的提示注入防御
- 02检查文件、网页抓取或 RAG 内容带来的间接攻击
- 03验证工具输出和 MCP 资源的防护
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ owasp/ secure-agent-playbook --skill prompt-injection-test安装后在 Claude Code 中输入/prompt-injection-test确认已加载。
详细介绍
提示词注入测试
按照 plays/prompt-injection-testing.md 中的完整流程,系统地测试 LLM 应用的提示词注入防御。
基于 Jason Haddix(Arcanum Information Security)编写的 Arcanum PI Taxonomy。采用 CC BY 4.0 许可。
步骤
-
范围和输入面映射 — 找出攻击者可控的内容到达 LLM 的所有路径:直接路径(聊天、API 参数)和间接路径(文件上传、网页抓取、RAG 文档、工具输出、MCP 资源)。
-
按攻击意图测试(13 种意图)— 针对每种获准的意图,尝试实现攻击者的目标:
- INT-01 泄露系统提示词、INT-02 越狱、INT-03 枚举工具
- INT-04 枚举 API、INT-05 获取提示词机密、INT-06 攻击用户
- INT-07 数据投毒、INT-08 拒绝服务、INT-09 讨论有害内容
- INT-10 多链攻击、INT-11 生成图像、INT-12 测试偏见
- INT-13 商业诚信
-
按攻击技术测试(18 种技术)— 使用已知的载荷构造方法:
- 框定、叙事走私、认知过载、元提示
- 俄罗斯套娃、记忆利用、充当解释器、矛盾
- 结束序列、反转、添加规则、变量展开
- 链接注入、谜题、反伤害胁迫、ASCII/空间
- 二进制流、空间字节数组
-
应用规避层(20 种规避方法)— 技术被拦截时,尝试使用混淆手段重试:
- 编码:base64、十六进制、摩斯码、密码、反转
- 语言:其他语言、虚构语言、语音替换、表情符号
- 结构:JSON/XML 包装、markdown、元字符混淆、空白字符、散点
- 高级:隐写术、链接走私、图节点、波形、大小写变换
-
执行测试矩阵 — 组合意图 x 技术 x 规避方法。优先级:先测影响大的意图,其次测间接输入面,再针对拦截了直接尝试的防御进行规避测试。
-
评估结果 — 对每次成功的注入,记录:严重程度、攻击路径(意图 + 技术 + 规避方法 + 输入面)、确切载荷、检测缺口和修复措施。
-
验证防御 — 检查 5 层防御清单:生态系统强化、模型防护、提示词层防御、数据层控制、应用层验证。
输出
测试结果汇总表(意图 / 技术 / 规避方法 / 输入面 / 结果 / 严重程度)、使用 templates/finding.md 编写的详细发现、标出缺口的防御覆盖清单,以及按优先级排序的建议。
OWASP 参考
- LLM01:提示词注入
- LLM05:不当的输出处理
- LLM06:权限过大
- LLM07:系统提示词泄露