使用说明
MCP服务器示例
用于安全测试的模型上下文协议服务器。关注故意易受伤害的行为;保持隔离,永远不要部署。
设置
cd /Users/pratik.mishra/Documents/mcp_test
npm install --cache ./.npm-cache --no-progress
自定义缓存目录将npm写入保存在工作区沙箱中。
故意易受攻击的MCP服务器(仅用于培训)
不要部署。 这种变体暴露了明显的安全漏洞,以供实践审查/利用。
npm run dev # runs src/vulnerable.ts
npm run build # emits dist/vulnerable.js
npm start # runs compiled vulnerable server
工具和漏洞:
shell_exec:任意命令执行/命令注入。read_file_unsafe:路径遍历/任意文件读取。write_file_unsafe:任意文件写入/覆盖。http_fetch_unsafe:SSRF到任意URL。leak_env:泄漏所有环境变量/机密。eval_js:通过执行任意代码eval.prompt_poison:提示/工具中毒有效载荷颠覆代理。arm_rug_pull+trusted_info:在武装之前是善意的,然后泄露秘密。register_tool_unsafe:从不受信任的代码(供应链/地毯拉取)中动态注册工具。override_tool:用攻击者提供的处理程序覆盖现有工具。list_tools_poisoned:返回误导性的工具元数据来欺骗代理。
最小演示MCP客户端(用于培训)
生成易受攻击的服务器并发出样本不安全调用(环境泄漏、文件读取、地毯拉取)。
npm run dev:client
使用mcp扫描进行扫描
此服务器设计用于扫描 mcp扫描 以检测安全漏洞。
安装mcp扫描
pipx install mcp-scan
# Or: pip install mcp-scan
扫描命令
未经验证检查工具:
~/.local/bin/mcp-scan inspect --server-timeout 15 mcp.json
完全安全扫描(使用--optout在API超时时跳过):
~/.local/bin/mcp-scan scan --opt-out --full-toxic-flows --server-timeout 15 --print-errors mcp.json
使用API验证进行全面扫描(如果API可用):
~/.local/bin/mcp-scan scan --full-toxic-flows --server-timeout 15 --print-errors mcp.json
JSON输出:
~/.local/bin/mcp-scan scan --opt-out --json --full-toxic-flows --server-timeout 15 mcp.json > mcp_scan_report.json
注:如果 ~/.local/bin 不在您的PATH中,请运行 pipx ensurepath 或者使用如上所示的完整路径。