安全测试服务器

MCP服务器是一个用于安全测试的模型上下文协议服务器,专注于故意暴露漏洞行为,适用于安全培训和漏洞扫描场景。

  • by pratikmishra1
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 pratikmishra1/mcp_test

使用说明

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 或者使用如上所示的完整路径。