🛡️ 大模型攻防渗透测试靶场 · 提示注入CTF / OWASP LLM Top10 / 脆弱Agent / 资料聚合。目标模型可切换:DeepSeek直连、OpenRouter中转站(国产+国外十余款小模型)、本地Ollama(DeepSeek-R1 8B离线)。一键本地部署。
🛡️ LLM SecRange · 大模型攻防渗透测试靶场
一个从零打造的本地化大模型攻防练习平台
提示注入闯关 · OWASP LLM Top 10 · 脆弱 Agent 靶场 · 靶场资料聚合
目标模型可自由切换——DeepSeek 直连 / OpenRouter 中转站(国产+国外十余款小模型)/ 本地 Ollama 离线,真实可被绕过;Agent 危险操作隔离在沙箱 / Docker 容器内。

✨ 这是什么
LLM SecRange 是一个单体 Flask Web 系统,把社区里优秀的大模型攻防靶场(AIGoat、damn-vulnerable-llm-agent、ai-prompt-ctf 等)的核心玩法,重新整合成一个开箱即用、全中文、接真实大模型的本地训练场。适合:
- 🧑💻 安全工程师 / 红队 / 渗透测试学习 LLM 攻击面
- 🎓 AI 安全教学与 CTF 出题
- 🏢 团队内做 LLM 应用安全意识培训
⚠️ 仅供授权的安全教育 / 渗透测试训练。所有漏洞与危险操作均隔离在本地沙箱内,请勿用于真实攻击。
🎯 多模型目标可切换(DeepSeek 直连 + OpenRouter 聚合)
右上角 target 是目标模型下拉选择器,小模型优先。可对比同一攻击在不同模型上的鲁棒性差异——小模型更易被绕过,大模型守卫更严:
- 🖥️ 本地部署:DeepSeek-R1 8B(Ollama,完全离线、数据不出本机)
- 🇨🇳 国产:DeepSeek V4 Flash(默认/直连)、通义千问 Qwen2.5-7B / Qwen3-8B、智谱 GLM-4.7-Flash、MiniMax M2.5
- 🌍 国外小模型:Llama 3.2 1B/3B、Llama 3.1 8B、Google Gemma 3 4B、Microsoft Phi-4 Mini、Mistral Ministral 3B、OpenAI GPT-5 Nano / GPT-4o Mini
切换的模型会同时作用于对话生成与 LLM 守卫。DeepSeek 走直连,云端小模型经 OpenRouter,本地模型经 Ollama;在 modules/modelsel.py 的 MODELS 里加一行即可扩充。
启用本地 DeepSeek 8B(可选,离线靶机):
ollama serve & # 启动本地推理服务 ollama pull deepseek-r1:8b # 拉取模型(约 5GB) 然后在右上角下拉选「DeepSeek-R1 8B(本地)」即可
⚔️ 开箱即用的渗透语句
每个关卡都内置了完整、可直接复制的渗透测试语句(不只是模糊提示)——点一下即自动填入输入框开打。覆盖:提示注入越权、字母拆分/北约音标/首字母藏字绕过输出过滤、跨轮分段泄露绕过审查、SQL 注入、路径穿越、伪造 Observation: 欺骗 ReAct 循环等真实手法。新手照着打能通关,进阶者可在此基础上自行变形。
🔬 对话检查器(Prompt Inspector)
CTF / OWASP 每个对话页在聊天框之外都有一个检查器,逐轮展示实际发给模型的完整 messages(system + 历史 + 本轮,按 role 分色)与模型原始返回——让你直观看到 ReAct 之外的多轮上下文是怎么拼装的、输出守卫拦截前模型到底说了什么。flag 本体会打码(变形泄露不受影响),避免直接抄答案。
🧠 会话管理
所有与模型的对话均为多轮有记忆:模型记住此前的交流,支持「分多步社会工程 / 跨轮拼接 payload」等高级攻击。每个对话窗口顶部显示当前记忆轮数,并提供 🗑️ 清空记忆 / 新会话 按钮一键重置上下文,互不干扰地反复试验不同攻击路径。CTF、OWASP labs、Agent 三处独立维护各自会话。
🧩 四大模块
1. CTF · 提示注入闯关(Gandalf 式 8 关)
防御逐级加固:从「毫无防备」到「输入/输出双过滤 + 模糊匹配 + LLM 看门人 + 输入意图审查」。目标是诱导模型吐出每关的暗号。| 关卡 | 防御强度 | |---|---| | L1 毫无防备 | 无 | | L2 口头约束 → L3 拒绝谈论 | 系统提示约束 | | L4 输出过滤 → L5 输入过滤 | 关键词/明文拦截 | | L6 LLM 看门人 → L7 全家桶 → L8 偏执狂 | 多重守卫叠加 |

2. OWASP LLM Top 10 靶场(2025 版)
覆盖十大风险,每类一个可上手的 lab,含可攻击关与缓解讲解关:LLM01 提示注入 · LLM02 敏感信息泄露 · LLM03 供应链 · LLM04 数据与模型投毒 · LLM05 不当输出处理(XSS) · LLM06 过度代理 · LLM07 系统提示泄露 · LLM08 向量与嵌入弱点 · LLM09 错误信息 · LLM10 无限制消耗

3. Agent 靶场 · 脆弱 ReAct 银行客服
一个接 DeepSeek 的 ReAct Agent,工具实现存在真实漏洞,4 个夺旗目标:- 💉 SQL 注入 —
get_transactions字符串拼接,dump 他人交易 - 📂 路径穿越 —
read_doc未规范化路径,读取沙箱机密文件 - 💸 越权转账 —
transfer不校验账户归属(过度代理) - 🖥️ 命令执行 —
run_command被诱导执行任意命令(经 Docker 隔离)

4. 聚合清单
精选 GitHub 大模型攻防靶场仓库,标注 Star 与活跃状态(近半年是否更新)。
🚀 一键部署
方式一:脚本启动(推荐本地)
git clone https://github.com/<你的用户名>/llm-sec-range.git
cd llm-sec-range
cp .env.example .env # 编辑 .env 填入你的 DEEPSEEKAPIKEY
bash run.sh # 自动建 venv、装依赖、起服务(随机端口)
启动后终端会打印访问地址,如 http://127.0.0.1:<随机端口>。
方式二:Docker Compose(推荐隔离部署)
cp .env.example .env # 填入 DEEPSEEKAPIKEY
docker compose up -d # 浏览器打开 http://localhost:8000
方式三:手动
pip install -r requirements.txt
cp .env.example .env # 填 key
python app.py
(可选)开启 Agent 的 Docker 隔离执行
让run_command 在一次性容器内真实执行(而非本地模拟):
bash agent_sandbox/build.sh # 构建沙箱镜像
在 .env 里设 AGENTUSEDOCKER=1,重启服务
⚙️ 配置(.env)
| 变量 | 说明 | 默认 | |---|---|---| | DEEPSEEKAPIKEY | DeepSeek API Key(必填) | — | | DEEPSEEKBASEURL | API 地址 | https://api.deepseek.com | | DEEPSEEK_MODEL | 模型 | deepseek-chat | | PORT | Web 端口(0/留空=随机) | 随机 | | AGENTUSEDOCKER | Agent 命令执行是否走 Docker | 0 |
🔑 Key 只存在本地.env(已.gitignore),不会进入仓库。
🏗️ 架构
llm-sec-range/
├── app.py # Flask 入口(随机端口)
├── config.py # 配置 + .env 加载
├── llm_client.py # DeepSeek 调用封装
├── modules/ # 四大模块蓝图
│ ├── ctf.py # 提示注入闯关 + 守卫链
│ ├── owasp.py # OWASP Top10 labs
│ ├── agent_range.py # ReAct Agent 循环
│ └── catalog.py # 聚合清单
├── data/ # 关卡 / 清单数据
├── agent_sandbox/ # Agent 工具沙箱 + Docker 隔离
├── templates/ static/ # 前端(暗色 hacker 风)
└── docker-compose.yml # 一键容器部署
🙏 致谢 / 灵感来源
本项目玩法参考了以下优秀开源靶场(详见站内「聚合清单」): AISecurityConsortium/AIGoat · opena2a-org/damn-vulnerable-ai-agent · c-goosen/ai-prompt-ctf · ReversecLabs/damn-vulnerable-llm-agent · ottosulin/awesome-ai-security
📜 License
MIT — 仅限合法、授权的安全研究与教育用途。