[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-93441":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":46,"readmeContent":47,"aiSummary":48,"trendingCount":16,"starSnapshotCount":16,"syncStatus":14,"lastSyncTime":49,"discoverSource":50},93441,"LLMVault","CyberSunil\u002FLLMVault","CyberSunil","An intentionally vulnerable OWASP LLM Top 10 training platform for AI Security, Prompt Injection, RAG Security, Agent Security, and GenAI penetration testing.","",null,"Python",219,54,2,1,0,8,90,57,90.22,"MIT License",false,"main",true,[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"agent-security","ai-security","ai-security-tool","artificial-intelligence","ctf","docker","genai","large-language-models","llm","llm-security","llm-security-testing","owasp","owasp-llm-top-10","penetration-testing","prompt-injection","prompt-injection-llm-security","python","rag","red-team","vulnerable-lab","2026-07-22 04:02:09","\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fbanner.png\" alt=\"LLMVault Banner\" width=\"100%\">\n\u003C\u002Fp>\n\n#  LLMVault\n\n\u003Ch3 align=\"center\">\n\nThe Ultimate Hands-On OWASP LLM Top 10 Training Platform\n\n\u003C\u002Fh3>\n\n## 🎬 Demo\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fdocs\u002Fdemo.gif\" width=\"650\" alt=\"LLMVault Demo\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Learn • Exploit • Defend\u003C\u002Fstrong>\n\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FCyberSunil\u002FLLMVault?style=for-the-badge\" alt=\"Stars\">\n\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002FCyberSunil\u002FLLMVault?style=for-the-badge\" alt=\"Forks\">\n\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FCyberSunil\u002FLLMVault?style=for-the-badge\" alt=\"License\">\n\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002FCyberSunil\u002FLLMVault?style=for-the-badge\" alt=\"Last Commit\">\n\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002FCyberSunil\u002FLLMVault?style=for-the-badge\" alt=\"Issues\">\n\n  \u003Cbr>\n\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOWASP-LLM%20Top%2010%20(2025)-8A2BE2?style=for-the-badge\" alt=\"OWASP\">\n\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocker-Ready-2496ED?style=for-the-badge&logo=docker\" alt=\"Docker\">\n\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.10+-3776AB?style=for-the-badge&logo=python&logoColor=white\" alt=\"Python\">\n\n\n\u003C\u002Fp>\n\nA deliberately-vulnerable, CTF-style **training range for the OWASP Top 10 for LLM Applications (2025)** — WebGoat \u002F KubeGoat, but for AI. **25 labs across three tiers:** ten core one-per-category labs; ten **advanced, multi-turn** labs (jailbreaking, data poisoning, agent exploitation, model extraction); and five **expert** labs modelling real-world attack classes. Each tier unlocks the next.\n\nEvery lab pairs the **attack** with a **defense** (in the private solutions guide): learn the fix by practising the break.\n\n> ⚠️ **Everything here is intentionally insecure. Authorised, self-hosted security education only.** Don't expose it to the internet or reuse its code in production.\n\n## 📸 Screenshots\n\n| Labs (three tiers) | A lab in action | Completion card |\n|---|---|---|\n| \u003Cimg src=\"docs\u002Flabs.svg\" width=\"300\"> | \u003Cimg src=\"docs\u002Flab.svg\" width=\"300\"> | \u003Cimg src=\"docs\u002Fcompletion-card.png\" width=\"300\"> |\n\n\n\n---\n\n\n## 🧩 Core Tier — OWASP LLM Top 10\n\n| OWASP (2025) | Lab | Technique |\n|---|---|---|\n| LLM01 Prompt Injection | The Obedient Assistant | direct instruction override |\n| LLM02 Sensitive Info Disclosure | Redaction Theater | output-filter bypass via encoding |\n| LLM03 Supply Chain | Trust the Manifest? | typosquatted \u002F unsigned dependency |\n| LLM04 Data & Model Poisoning | The Sleeper Phrase | poisoned-data backdoor trigger |\n| LLM05 Improper Output Handling | Rendered Without Question | unsanitised output → injection |\n| LLM06 Excessive Agency | Keys to the Kingdom | over-permissioned tool, no authz |\n| LLM07 System Prompt Leakage | Loose Lips | secret leaked from system prompt |\n| LLM08 Vector & Embedding | Retrieval Without Borders | RAG retrieval ignores ACLs |\n| LLM09 Misinformation | The Yes-Man | sycophancy \u002F false authority |\n| LLM10 Unbounded Consumption | Denial of Wallet | runaway generation + leaky error |\n\n## 🔥 Advanced Tier — Multi-Turn Challenges (unlocks after completing all 10 Core challenges)\n\nThese are **conversational**: no single message wins — they require building state across turns (roleplay escalation, iterative poisoning, tool chaining, oracle querying).\n\n| OWASP | Lab | Advanced technique |\n|---|---|---|\n| LLM01 | Roleplay Unchained | **multi-turn jailbreak** via persona escalation |\n| LLM02 | Death by a Thousand Hints | fragment reconstruction from a partial-disclosure oracle |\n| LLM03 | The Tampered Registry | deployed-vs-canonical hash correlation |\n| LLM04 | Teach Me Wrong | **active data poisoning** of an online-learning filter |\n| LLM05 | The Note Keeper | **stored \u002F second-order** injection |\n| LLM06 | Confused Deputy | **agent tool-chaining** (SSRF to internal metadata) |\n| LLM07 | Method Actor | multi-technique system-prompt extraction |\n| LLM08 | Crossed Wires | cross-tenant RAG memory bleed |\n| LLM09 | The Confident Liar | hallucination → overreliance cascade |\n| LLM10 | The Oracle | **query-based model extraction** |\n\n\n## ⚔️ Expert Tier — Real-World Attack Classes (unlocked after all Advanced challenges are solved)\n\nFive **expert** labs modelling real-world, disclosed-vulnerability attack classes against LLM systems. Each is **simulated** — the app recognises the known payload and returns a flag; no real RCE\u002FSSRF\u002FSQL happens in the tool.\n\n**This tier ships ENCRYPTED, and its contents are intentionally not listed here.** The challenges and flags are AES-encrypted (Fernet) into `challenges\u002Fexpert.enc` with a key derived from a secret **Expert Access Key** that lives only in the operator's private vault — never in the repo. Cloning the repo yields ciphertext only; the specific scenarios stay secret until you earn them. To unlock, a player must (1) finish all Core + Advanced labs and (2) enter the key, which the operator (**CyberSunil**) hands out **manually** after the player shares their completion card. Wrong key → authenticated decryption fails → nothing is revealed.\n\n> Discovering what's inside is part of the challenge. 🔒\n\n---\n\n## 🚀 Run it\n\n```bash\npip install -r requirements.txt\npython app.py\n# open http:\u002F\u002F127.0.0.1:5000\n```\n\nNo API key needed — the vulnerable assistants are **deterministic\u002Fscripted**, so flags reproduce reliably and the whole range runs fully offline.\n\n---\n\n\n## 🐳 Run with Docker\n\n```bash\n# build + run\ndocker compose up --build          # then open http:\u002F\u002F127.0.0.1:5000\n# or plain docker:\ndocker build -t llmvault .\ndocker run -p 5000:5000 llmvault\n```\n\nServed by gunicorn (single worker, so the in-memory scoreboard stays consistent).\n**Do not expose this to the public internet** — it's intentionally vulnerable. To bind\nto localhost only, use `\"127.0.0.1:5000:5000\"` in `docker-compose.yml`.\n\n\n## 💾 Persistence (self-host friendly)\n\nProgress and the scoreboard are saved to `data\u002Fprogress.json` — **no database needed** — so\nthey survive page refresh *and* a server\u002Fcontainer restart. In Docker the `.\u002Fdata` volume\nkeeps them across `docker compose down\u002Fup`. Delete the file to reset everyone.\n\n## 🙋 Player experience\n\n- **First-run name gate** (locked once set) and a **one-time guided tutorial** on your first lab.\n- After you solve a lab, a **📘 Learn — the fix** panel reveals the defensive lesson for that OWASP category.\n- **Responsive layout** — works on phones (the sidebar collapses, panels stack).\n\n## 🕹️ How to play\n\n1. On first launch you set a **player name** (locked once chosen — it can't be changed after).\n2. Work the **core** labs; make each assistant leak its flag using that category's technique.\n3. Clear all 10 core labs to unlock the **advanced tier**; clear all advanced to unlock the **expert tier**.\n4. Reveal **hints** if stuck (−5 pts each). Submit flags (`LLMVAULT{...}`, configurable in `config.py`).\n5. Cards **float on hover** and turn **green when solved**; track everything on the **Scoreboard**.\n\n**Scoring:** core 100–300 pts, advanced 400, expert 500; hints cost 10 \u002F 25 \u002F 50 (escalating).\n\n---\n\n\n## 🎓 Completion card & sharing\n\nTwo milestone cards unlock automatically as a pop-up the moment you finish a tier:\na **green Beginner** card (all 10 Core labs) and a **blue Master** card (all 20 Core +\nAdvanced). Both are also at `\u002Fcompletion`. Each has a **Download card (PNG\u002FSVG)** button,\na pre-written caption (Copy), and LinkedIn\u002FX openers.\n\n**Sharing an image:** social sites can't auto-attach an image from a share link, so the\nflow is: **Download the card → open LinkedIn\u002FX → paste the caption → attach the image.**\nPlayers post it and tag **CyberSunil** to receive the Expert Access Key. The card renders\nserver-side as a themed SVG (`\u002Fcard.svg`) and exports to PNG in-browser — no external deps.\n\n## 🧱 Architecture\n\n```\napp.py                      # Flask: labs, chat, hint, submit, scoreboard, name-gate, unlock gating\nconfig.py                   # APP_NAME, AUTHOR\u002FCOPYRIGHT, flag prefix, scoring\nchallenges\u002F\n  __init__.py               # Challenge base (tier), registry, core_labs()\u002Fadvanced_labs()\n  llm01_..llm10_*.py         # core labs\n  advanced\u002Fa01_..a10_*.py    # advanced multi-turn labs\n  expert.enc                 # ENCRYPTED expert tier (ciphertext, shipped)\n  expert_meta.json           # public KDF salt\u002Fparams\n  expert_vault.py            # runtime decryptor + declarative challenge engine\ntemplates\u002F  static\u002F          # dark violet UI + completion card + expert key gate\nDockerfile  docker-compose.yml  # containerised deploy\nLICENSE                     # MIT + security notice\n```\n\nEach challenge is a `Challenge` subclass with a `respond(message, state)` that encodes the vuln; advanced labs use the persistent `state` dict for multi-turn logic. Add your own by dropping a module in `challenges\u002F` (or `challenges\u002Fadvanced\u002F`) and registering it.\n\n---\n\n## 👤 Credit & license\n\nMade by **CyberSunil**. Copyright © 2026 Sunil Tripathy.. Released under the **MIT License** (see `LICENSE`), with a security notice that the project is deliberately vulnerable and for authorised training only. Forks and derivative works must comply with the MIT License. Use of the LLMVault branding remains subject to the trademark policy.\n\n---\n### ⚖️ Intellectual Property\n\n- 📄 **Source Code:** MIT License\n- ™️ **Trademark & Branding:** See [`TRADEMARKS.md`](.\u002FTRADEMARKS.md)\n\nThe **LLMVault™** name, logo, branding, artwork, banners, screenshots, documentation, and other visual assets are **not** licensed under the MIT License and may not be used without prior written permission.\n\n---\n*Break it here so you can defend it everywhere.*\n\n---\n\nContributions welcome — see [CONTRIBUTING.md](CONTRIBUTING.md). Security policy: [SECURITY.md](SECURITY.md).\n","LLMVault 是一个面向 AI 安全教育的故意存在漏洞的实战训练平台，专为学习和演练 OWASP LLM Top 10（2025）十大风险而设计。平台提供 25 个分层实验（基础\u002F进阶\u002F专家），覆盖提示注入、RAG 安全、智能体越权、数据投毒、系统提示泄露等典型 LLM 安全威胁，并为每个漏洞配套防御实践指导。基于 Docker 快速部署，采用 Python 实现，支持本地红队演练与安全培训。适用于企业安全团队、AI 开发者、CTF 学习者及合规培训场景，仅限授权内网环境使用。","2026-07-18 02:30:07","CREATED_QUERY"]