使用说明
VulneraMCP
基于人工智能的Bug赏金MCP服务器 -reco、漏洞测试、API/auth/云扫描、图形分析,以及为安全研究人员和漏洞赏金猎人提供报告。
VulneraMCP是一个用于漏洞赏金搜寻和安全测试的模型上下文协议(MCP)服务器。它集成了OWASP ZAP、可选的Caido/Burp Suite和CLI工具(subfinder、httpx、gau、ffuf),用于侦察、JavaScript分析、XSS/SQLi/IDOR/CSRF测试、API和auth错误配置检查、云存储桶和秘密扫描、精心安排的扫描流、知识粒度分析、单词表生成和Markdown报告,以及用于结果和测试结果的PostgreSQL存储。
🎬 演示
在YouTube上观看VulneraMCP演示: https://youtu.be/wlUvBVNyh74
🌟 特性
🔍 侦察工具
- 子域发现:Subfinder,Amass集成
- 实时主机检测:用于检查活动端点的HTTPx
- DNS解析:DNS记录枚举(A、AAAA、CNAME、MX、TXT)
- URL发现:从档案和爬虫获取所有URL
- 模糊测试:ffuf用于目录、文件和参数发现
- 完整的侦察工作流程:自动化多工具侦察
🔐 安全性测试
- XSS测试:自动跨站点脚本检测
- SQL注入:使用sqlmap回退进行SQLi漏洞测试
- IDOR检测:不安全的直接对象引用测试
- CSP分析:内容安全策略配置错误检测
- 绕过身份验证:身份验证绕过尝试测试
- CSRF测试:采用先进技术进行跨站点请求伪造检测
🌐 API测试
- 图查询语言:反思和配置错误检查
- 速率限制:端点速率限制测试
- 博拉 / IDOR:对象级授权测试已损坏
- 批量赋值:不安全字段分配检测
- Swagger/OpenAPI:API文档列举
🔑 认证测试
- JSON Web 令牌:无算法和算法混淆攻击
- OAuth:配置错误检测
- 场次:固定和cookie标志分析
- 密码重置:主机头中毒测试
- 多因素认证:旁路信号检测和测试
☁️ 云安全
- 存储:S3/AAzure/GCP桶枚举和权限探测
- 秘密:JS、HTML和env文件中的暴露密钥扫描
- 地形:状态文件泄漏检测
🎯 扫描仪编排
- 目标标准化:标准化多工具流程的目标
- 运行流程:在API、身份验证和云工具之间进行协调扫描
- 寻找相关性:跨测试链接和关联结果
📈 图形分析
- 知识图谱:在PostgreSQL中存储目标、发现和关系
- 模式检测:提取模式并找到类似的发现
- 攻击图:生成、排序和导出攻击路径(JSON、GraphML)
📝 报告和单词表
- 报告生成:Markdown报告调查结果
- 单词列表生成:目录、文件、参数和组合列表
📜 JavaScript分析
- JS下载:下载并分析JavaScript文件
- 代码美化:格式化和美化缩小的JS
- 端点提取:在JS中查找API端点和URL
- 秘密侦查:启发式API密钥和令牌提取
- 全面分析:组合下载、美化和分析工作流程
🕷️ 集成
- 蜘蛛扫描:自动网络爬行
- 主动扫描:漏洞扫描
- 代理集成:通过ZAP代理处理请求
- 警报管理:检索和分析安全警报
- 上下文管理:定义扫描上下文
💾 数据库集成
- PostgreSQL:存储发现、测试结果和分数
- 瑞迪斯:工作内存和缓存(可选)
- 寻找管理:保存和检索错误发现
- 测试结果存储:使用统计数据跟踪所有安全测试
🖼️ 渲染工具
- 截图:使用Puppeteer截取网页截图
- DOM提取:提取并分析页面结构
- 表单提取:查找和分析web表单
- JavaScript执行:在页面上下文中执行JS
🤖 人工智能训练与模式匹配
- 训练数据导入:从HTB、PortSwigger实验室进口
- 模式匹配:从成功的漏洞中学习
- 撰写分析:从bug赏金报告中提取模式
- CSRF模式:预加载CSRF利用模式
📊 网络仪表板
- 实时统计:查看测试结果和发现
- 寻找管理:浏览和分析发现的漏洞
- 可视化分析:跟踪测试进度和成功率
🚀 快速开始
先决条件
- Node.js 20+和npm
- PostgreSQL 18+(或Docker)
- 瑞迪斯 (可选,用于缓存)
- 电击 (可选,用于主动扫描)
- Caido (可选,用于流量分析)
安装
# Clone the repository
git clone https://github.com/telmon95/VulneraMCP.git
cd VulneraMCP
# Install dependencies
npm install
# Build the project
npm run build
配置
-
复制环境模板:
cp mcp.json.example mcp.json -
配置环境变量:
- 设置PostgreSQL连接详细信息
- 配置Caido API令牌(如果使用)
- 设置ZAP API URL(默认值:http://localhost:8081)
-
初始化数据库:
node init-db.js
运行服务器
# Start the MCP server
npm start
# Start the dashboard (in another terminal)
npm run dashboard
# Access dashboard at http://localhost:3000
Docker设置
# Start all services with Docker Compose
docker-compose up -d
# Or use the startup script
./start-services.sh
📖 用法
通过MCP客户端(光标、克劳德桌面等)
服务器提供可通过任何MCP兼容客户端调用的MCP工具:
侦察:
recon.subfinder domain: example.com
recon.httpx input: example.com,subdomain.example.com
recon.full domain: example.com
安全测试:
security.test_xss url: https://example.com/search?q=<script>
security.test_sqli url: https://example.com/user?id=1
security.test_csrf url: https://example.com/profile/update
JavaScript分析:
js.analyze url: https://example.com/static/app.js
js.extract_secrets source: <javascript_code>
ZAP集成:
zap.start_spider url: https://example.com
zap.start_active_scan url: https://example.com
zap.get_alerts baseURL: https://example.com
Caido集成:
caido.query httpql: "req.host.cont:\"example.com\" AND req.path.cont:\"api\""
caido.agent_discover_endpoints host: example.com
利率限制和最佳实践
在测试漏洞赏金计划时,始终遵守费率限制:
// Example: 2 requests/second limit
const rateLimiter = require('./hunting/rate-limiter');
const limiter = rateLimiter(2); // 2 req/sec
await limiter();
// Make your request
🏗️ 项目结构
VulneraMCP/
├── src/
│ ├── integrations/ # External service integrations
│ │ ├── zap.ts # OWASP ZAP integration
│ │ ├── caido.ts # Caido integration
│ │ ├── postgres.ts # PostgreSQL database
│ │ └── redis.ts # Redis caching
│ ├── tools/ # MCP tools (recon, security, etc.)
│ ├── mcp/ # MCP server implementation
│ └── index.ts # Main entry point
├── public/ # Dashboard frontend
├── hunting/ # Bug bounty hunting scripts
├── dist/ # Compiled TypeScript output
└── dashboard-server.js # Dashboard API server
🔧 配置
MCP服务器配置(mcp.json)
{
"name": "vulneramcp",
"command": "node",
"args": ["dist/index.js"],
"env": {
"POSTGRES_HOST": "localhost",
"POSTGRES_PORT": "5433",
"POSTGRES_USER": "postgres",
"POSTGRES_DB": "bugbounty"
}
}
环境变量
# PostgreSQL
POSTGRES_HOST=localhost
POSTGRES_PORT=5433
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your_password
POSTGRES_DB=bugbounty
# ZAP
ZAP_API_URL=http://localhost:8081
# Caido
CAIDO_API_TOKEN=your_token
# Redis (optional)
REDIS_HOST=localhost
REDIS_PORT=6379
📊 仪表板
web仪表板提供:
- 统计:测试结果、成功率、漏洞分布
- 研究结果:发现漏洞的详细视图
- 搜索和筛选:按目标、类型、严重程度查找具体发现
访问地址: http://localhost:3000
💖 赞助商
如果VulneraMCP有助于您的漏洞赏金或安全研究工作流程,请考虑赞助 GitHub赞助商.
您的支持有助于为这个开源项目的新功能、文档、安全测试和长期维护提供资金。
🤝 贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
📝 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
⚠️ 免责声明
此工具仅用于授权的安全测试。始终:
- 测试前获得适当授权
- 遵守费率限制和服务条款
- 遵循负责任的披露做法
- 切勿在您不拥有或没有明确测试权限的系统上使用
🙏 致谢
- ZAP用于漏洞扫描
- bug赏金社区提供灵感和反馈
📚 文档
🐛 问题
发现bug了吗?有功能请求吗?请打开一个问题 GitHub.
📧 联系
- github: @电话95
- 赞助商: GitHub赞助商
- 问题: GitHub Issues