CyberMCP - 使用 MCP 进行网络安全 API 测试
CyberMCP 是一个模型上下文协议 (MCP) 服务器,用于测试后端 API 的安全漏洞。它提供了一组专用工具和资源,可供 LLM 用来识别 API 中常见的安全问题。
特征
身份验证漏洞测试:检查 JWT 漏洞、身份验证绕过和弱身份验证机制
注入测试:测试 SQL 注入、XSS 和其他注入漏洞
数据泄漏测试:识别敏感数据泄露问题
速率限制测试:测试速率限制绕过和 DDoS 漏洞
安全标头测试:检查缺失或配置错误的安全标头
综合资源:访问 API 安全测试的清单和指南
身份验证支持:多种身份验证方法来测试安全端点
Related MCP server: Mutmut MCP
项目结构
CyberMCP/
├── src/
│ ├── tools/ # MCP tools for security testing
│ ├── resources/ # MCP resources (checklists, guides)
│ ├── transports/ # Custom transport implementations
│ ├── utils/ # Utility functions and auth management
│ └── index.ts # Main entry point
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file安装
克隆存储库:
git clone https://github.com/your-username/CyberMCP.git cd CyberMCP安装依赖项:
npm install构建项目:
npm run build
用法
运行 MCP 服务器
您可以使用 stdio 传输(默认)或 HTTP 传输运行服务器:
使用 stdio 传输(用于与 LLM 平台集成):
npm start使用 HTTP 传输(用于本地开发和测试):
TRANSPORT=http PORT=3000 npm start连接到服务器
MCP 服务器可以连接到任何 MCP 客户端,包括支持模型上下文协议的 LLM 平台。
安全工具
验证
CyberMCP 支持多种身份验证方法来测试安全的 API:
基本身份验证:使用用户名和密码设置 HTTP 基本身份验证
令牌认证:使用持有者令牌、JWT 或自定义令牌格式
OAuth2 身份验证:完整的 OAuth2 流程支持,具有不同的授权类型
自定义 API 登录:针对任何登录 API 端点进行身份验证
身份验证工具:
basic_auth:使用用户名/密码进行身份验证token_auth:设置基于令牌的身份验证oauth2_auth:执行 OAuth2 身份验证api_login:使用自定义 API 端点登录auth_status:检查当前身份验证状态clear_auth:清除当前身份验证状态
认证测试
JWT 漏洞检查:分析 JWT 令牌是否存在安全问题
身份验证绕过检查:测试端点是否存在身份验证绕过漏洞
注入测试
SQL注入检查:测试SQL注入漏洞的参数
XSS 检查:测试跨站脚本漏洞
数据泄漏测试
敏感数据检查:识别泄露的 PII、凭证和敏感信息
路径遍历检查:测试目录遍历漏洞
安全标头测试
安全标头检查:分析 HTTP 标头以获取最佳安全实践
资源
清单
通过cybersecurity://checklists/{category}访问安全检查表,其中类别可以是:
authenticationinjectiondata_leakagerate_limitinggeneral
指南
通过guides://api-testing/{topic}访问详细的测试指南,其中主题可以是:
jwt-testingauth-bypasssql-injectionxssrate-limiting
API 测试所需信息
为了有效地测试 API 的安全漏洞,您需要:
API 端点:要测试的端点的 URL
身份验证信息:用于访问安全端点的凭证或令牌
参数名称:接受用户输入的参数的名称
测试数据:参数的样本有效数据
预期行为:正常响应应该是什么样的
身份验证流程:目标 API 中的身份验证如何工作
身份验证示例
基本身份验证
basic_auth:
username: "admin"
password: "secure_password"令牌认证
token_auth:
token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
token_type: "Bearer"
expires_in: 3600OAuth2 身份验证
oauth2_auth:
client_id: "client_123"
client_secret: "secret_456"
token_url: "https://example.com/oauth/token"
grant_type: "client_credentials"
scope: "read write"自定义 API 登录
api_login:
login_url: "https://example.com/api/login"
credentials:
username: "admin"
password: "secure_password"
token_path: "data.access_token"执照
麻省理工学院