vuln_mcp_app
vuln_mcp_App
의도적으로 취약하게 설계된, 로컬에서 실행 가능한 Model Context Protocol(MCP) 보안 실습 환경 — 별도의 FYP 보안 스캐너를 평가하기 위한 통제된 타깃(개념적으로 "MCP용 DVWA")입니다. 이 앱은 스캐너가 아니라 타깃입니다. 소규모의 문서화된 MCP 취약점 집합을 호스팅하며 증거를 생성합니다. 취약 여부를 보고하지 않습니다(오라클 없음, SEC-006).
⚠️ 교육/연구용으로만 사용하세요. 모든 것은 로컬에서 합성 데이터와 더미 시크릿(
DEMO_SECRET_*)으로 실행됩니다. 실제 자격 증명 없음, 외부 타깃 없음, 인터넷 스캔 없음, 호스트 접근 없음.
범위(정확히 3개의 랩)
ID | OWASP MCP | 취약점 | 상태 |
VULN-MCP03-001 | MCP03 | 도구 오염(Tool Poisoning) | 구현됨 |
VULN-MCP05-001 | MCP05 | 명령 주입 및 실행 | 구현됨 |
VULN-MCP10-001 | MCP10 | 컨텍스트 주입 및 과다 공유 | 보류 중 |
추가 취약점 랩은 범위에 없습니다. 각 구현된 랩은 취약(VULNERABLE) 모드와 진정으로 수정된 안전(SECURE) 모드를 제공합니다.
Related MCP server: vuln-mcp-server
실행 방법(Docker 없음 — 명령 하나 + 브라우저)
전체 앱은 단일 uvicorn 프로세스로 실행됩니다: FastAPI가 빌드된 UI를 /에서 제공하고 API를 /api에서 제공합니다.
처음 실행 시
# 1) Build the UI once (Node 18+). Produces frontend/dist.
cd frontend && npm install && npm run build && cd ..
# 2) Run the app (uv resolves Python deps automatically; Python 3.12+).
uv run uvicorn backend.app.main:app --reload --host 127.0.0.1 --port 8000그런 다음 **http://127.0.0.1:8000**을 여세요 — 랩 UI가 표시됩니다. 대화형 API 문서는 **http://127.0.0.1:8000/docs**에 있습니다.
uv대신 일반venv를 선호하시나요?python -m venv .venv && source .venv/Scripts/activate # Windows Git Bash pip install -r backend/requirements.txt uvicorn backend.app.main:app --reload --host 127.0.0.1 --port 8000
첫 빌드 이후
uvicorn 명령을 실행하고 브라우저를 여세요. 프론트엔드 코드를 변경한 경우에만 UI를 다시 빌드하세요(npm run build).
프론트엔드 핫 리로드(선택 사항, UI 개발용)
API를 :8000에서 실행하고 Vite 개발 서버를 :5173에서 실행하세요(/api를 프록시합니다):
# terminal 1
uv run uvicorn backend.app.main:app --reload --host 127.0.0.1 --port 8000
# terminal 2
cd frontend && npm run dev # open http://127.0.0.1:5173테스트
# Backend (pytest)
uv run pytest # or: .venv/Scripts/python -m pytest
# Frontend (Vitest + tsc)
cd frontend && npm test && npx tsc --noEmit아키텍처
Browser (React SPA, served by FastAPI at :8000)
│ HTTP/JSON (/api)
▼
FastAPI control plane (ordinarily secure) ── MCP client ──► MCP tool registry
│ (vulnerable | secure)
▼ │
SQLite (labs, tools, telemetry, evidence) ◄── telemetry/evidence ─┘컨트롤 플레인은 일반적으로 안전한 인프라입니다(SEC-004). 명확하게 표시된 MCP 플레인 도구만 취약해질 수 있으며, vulnerable 모드에서만 그렇습니다. 의도적으로 취약한 파일에는 배너가 포함됩니다:
# INTENTIONALLY VULNERABLE — <VULN-ID> — see docs/GROUND-TRUTH.md.
MCP 전송: 1단계에서는 인프로세스 레지스트리 전송을 사용하므로 전체 앱이 단일 프로세스로 실행됩니다. 공식 SDK의 streamable-HTTP MCP 전송은 동일한 클라이언트 API 뒤에서 향후 업그레이드 항목입니다.
MCP05 샌드박스(구축 시): Docker를 제거한 상태에서 MCP05 랩의 명령 실행은 제한된 인프로세스 서브프로세스 러너에서 실행됩니다 — 임시 작업 디렉터리, 프로젝트 제공 가짜
convert셸, 하드 타임아웃, 그리고 secure 모드에서는 셸이 없습니다. 폭발 반경은 로컬 및 합성 범위로 제한됩니다(SEC-001/003); Docker가 제공하던 OS 수준 격리(네트워크 차단, 캡 비활성화)는 이 제한된 러너로 대체됩니다.sandbox/README.md를 참조하세요.
기술 스택
React + TypeScript + Vite + Tailwind · Python 3.12 + FastAPI + Pydantic v2 · 공식 Python MCP SDK · SQLite + SQLModel · pytest + httpx · Vitest + Testing Library. uv/uvicorn으로 실행합니다(Docker 없음).
API 표면(FYP가 분석 가능)
GET /api/health · GET /api/labs · GET /api/labs/{id} ·
POST /api/labs/{id}/mode|reset|attack|start · GET /api/labs/{id}/telemetry ·
GET /api/mcp/servers|tools · GET /api/mcp/tools/{id} ·
POST /api/mcp/tools/{id}/call · GET /api/vulnerabilities(카탈로그 메타데이터만) · GET /api/evidence.
어떤 엔드포인트도 취약점 판정을 공개하지 않습니다(SEC-006).
FYP에 대한 사용 방법(평가 루프)
타깃을 시작합니다(MCP03은 기본적으로
vulnerable입니다). 2.docs/GROUND-TRUTH.md의 수동 검증을 통해 랩이 활성 상태인지 확인합니다. 3. HTTP + MCP 표면에 대해 FYP를 실행합니다. 4. 결과를docs/GROUND-TRUTH.md와 비교합니다.Secure 모드로 전환하고 재실행하여 오탐(false positive)을 측정합니다. 6. 재설정하고 반복합니다.
프로젝트 문서
docs/GROUND-TRUTH.md— 정답 키(취약점별 + 매트릭스).docs/OWASP-MCP-MAPPING.md— OWASP MCP Top 10 매핑.docs/TEST-SCENARIOS.md— FYP 검증 시나리오.CLAUDE.md— 구현 메모 / 현재 단계 상태.docs/PRD.md,docs/TDD.md— 설계 계약서, 로컬 전용(git 제외)으로 유지. 2026-08-21에 Docker 없는 실행 모델로 업데이트됨.
현재 상태
MCP03 및 MCP05 완료(모든 단계). uvicorn을 통해 Docker 없이 실행됩니다. MCP10은 카탈로그에 골격만 잡혀 있으며 아직 구축되지 않았습니다. CLAUDE.md를 참조하세요.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceA deliberately insecure MCP server designed as a pentest lab to demonstrate common vulnerabilities in MCP deployments.
- FlicenseNot gradedqualityCmaintenanceA vulnerable-by-design MCP server pair (NotesServer and VaultServer) for testing MCP security tools, featuring confused-deputy, prompt injection, and authorization bypass scenarios.
- AlicenseNot gradedqualityDmaintenanceA deliberately vulnerable MCP application for learning MCP security through hands-on exercises covering OWASP MCP Top 10 categories.MIT
- FlicenseNot gradedqualityCmaintenanceAn intentionally vulnerable MCP server designed as a live demo target for the MCP Trust security scanner. It contains deliberate insecure patterns to demonstrate scanning capabilities.
Related MCP Connectors
MCP server for static security analysis of Android source code
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
MEOK MCP Hardening MCP — automated security red-team for any MCP server. Maps OWASP LLM Top 10
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/arrugit/vuln_mcp_app'
If you have feedback or need assistance with the MCP directory API, please join our Discord server