mcpField
E
ExploitDB MCP Server

ExploitDB MCP Server

本地服务
github.com/Cyreslab-AI安全315 周前更新

关于 ExploitDB MCP Server

ExploitDB MCP Server 为 AI 助手提供 ExploitDB 数据访问,适用于安全研究。它支持按 CVE、平台、类型、作者和标签检索,并可查看漏洞利用详情及分析数据集。

主要功能

  1. 01按多种条件搜索漏洞利用
  2. 02按 CVE 查询漏洞利用
  3. 03获取漏洞利用详情与代码
  4. 04查看近期及相关条目
  5. 05比较记录并查看统计
  6. 06以 JSON 或 CSV 导出结果

适用场景

  1. 01查找与某个 CVE 对应的 ExploitDB 条目
  2. 02按平台和类型筛选漏洞利用记录
  3. 03查看近期新增条目与趋势
  4. 04导出筛选结果用于分析

MCP 相关

它向 MCP 客户端提供 18 种工具,用于搜索、获取、比较和导出 ExploitDB 记录。工具还支持统计、时间线及相关漏洞利用查询。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

ExploitDB MCP 服务

一个提供 ExploitDB 功能访问的模型上下文协议服务,由 Cyreslab.ai 开发。此服务可让 Claude 等 AI 助手查询有关安全漏洞利用和漏洞的信息,增强网络安全研究与威胁情报能力。

GitHub 仓库:https://github.com/Cyreslab-AI/exploitdb-mcp-server 联系方式:[email protected]

功能

  • 漏洞利用搜索:通过关键词、CVE ID、平台等搜索漏洞利用
  • 漏洞利用详情:获取特定漏洞利用的全面信息,包括代码
  • CVE 查询:查找与特定 CVE ID 相关的所有漏洞利用
  • 近期漏洞利用:跟踪新添加的漏洞利用
  • 统计信息:了解漏洞利用按平台、类型和年份的分布情况
  • 自动更新:通过定时更新使数据库保持最新

安装

前置条件
  • Node.js(v16 或更高版本)
  • npm(v7 或更高版本)
安装步骤
  1. 克隆仓库:

    git clone https://github.com/Cyreslab-AI/exploitdb-mcp-server.git
    cd exploitdb-mcp-server
    
  2. 安装依赖:

    npm install
    
  3. 构建项目:

    npm run build
    
  4. 配置服务:

    • 根据 .env.example 在根目录中创建 .env 文件
    • 根据需要调整设置(数据目录、更新频率等)
  5. 初始化数据库:

    npm run update-db
    

    注意:首次更新数据库可能需要几分钟,因为需要处理 ExploitDB CSV 文件中的约 47,000 条漏洞利用记录。脚本会为必填字段使用备用值,从而妥善处理缺失或格式错误的数据。

  6. 运行服务:

    node build/index.js
    
MCP 配置

要将此服务与 Claude 或其他兼容 MCP 的助手搭配使用,请将其添加到 MCP 配置中:

{
  "mcpServers": {
    "mcp-exploitdb-server": {
      "command": "node",
      "args": ["/path/to/exploitdb-mcp-server/build/index.js"]
    }
  }
}

可用工具

ExploitDB MCP 服务提供 18 个功能全面的工具,用于查询和分析漏洞利用数据:

核心搜索工具
  1. search_exploits - 使用多个筛选条件进行通用搜索
  2. get_exploit - 获取特定漏洞利用的详细信息
  3. find_by_cve - 按 CVE ID 查找漏洞利用
  4. get_recent_exploits - 获取近期添加的漏洞利用
  5. get_statistics - 获取数据库统计信息
高级搜索工具
  1. search_by_platform - 搜索特定平台的漏洞利用,并应用筛选条件
  2. search_by_type - 按漏洞利用类型搜索(webapps、remote、local、dos、hardware、shellcode)
  3. search_by_author - 查找特定作者的所有漏洞利用
  4. search_by_date_range - 查找指定日期范围内的漏洞利用
  5. search_by_tags - 按 ExploitDB 的实际标签搜索(例如,“SQL Injection (SQLi)”、“Cross-Site Scripting (XSS)”)
分析与情报工具
  1. get_platform_statistics - 获取特定平台的详细统计信息
  2. get_trending_exploits - 查找近期添加的漏洞利用(可配置时间段)
  3. compare_exploits - 并排比较多个漏洞利用
  4. get_exploit_timeline - 获取漏洞利用的时间顺序
实用工具
  1. batch_get_exploits - 高效检索多个漏洞利用(最多 50 个)
  2. get_related_exploits - 按平台、作者、CVE 或标签查找相关漏洞利用
  3. validate_exploit_id - 检查漏洞利用 ID 是否存在
  4. export_search_results - 以 JSON 或 CSV 格式导出搜索结果

使用示例

搜索漏洞利用

使用 search_exploits 工具在数据库中搜索漏洞利用:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_exploits</tool_name>
<arguments>
{
  "query": "wordpress plugin",
  "platform": "php",
  "limit": 5
}
</arguments>
</use_mcp_tool>

其他搜索参数:

  • type:按漏洞利用类型筛选(例如,webapps、remote、local、dos、hardware、shellcode)
  • cve:按 CVE ID 筛选
  • author:按作者姓名筛选
  • start_date/end_date:按日期范围筛选(YYYY-MM-DD)
  • verified:按验证状态筛选(true/false)
  • offset:用于分页
获取漏洞利用详情

使用 get_exploit 工具获取特定漏洞利用的详细信息:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_exploit</tool_name>
<arguments>
{
  "id": 12345,
  "include_code": true
}
</arguments>
</use_mcp_tool>
按 CVE 查找漏洞利用

使用 find_by_cve 工具查找与特定 CVE 相关的所有漏洞利用:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>find_by_cve</tool_name>
<arguments>
{
  "cve": "CVE-2021-44228",
  "limit": 10
}
</arguments>
</use_mcp_tool>
获取近期漏洞利用

使用 get_recent_exploits 工具检索最近添加的漏洞利用:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_recent_exploits</tool_name>
<arguments>
{
  "limit": 10
}
</arguments>
</use_mcp_tool>
获取统计信息

使用 get_statistics 工具了解数据库中漏洞利用的相关信息:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_statistics</tool_name>
<arguments>
{}
</arguments>
</use_mcp_tool>
按平台搜索

使用高级筛选条件搜索特定平台的漏洞利用:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_platform</tool_name>
<arguments>
{
  "platform": "php",
  "type": "webapps",
  "verified": true,
  "limit": 10
}
</arguments>
</use_mcp_tool>
按作者搜索

查找特定作者的所有漏洞利用:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_author</tool_name>
<arguments>
{
  "author": "Offensive Security",
  "limit": 10
}
</arguments>
</use_mcp_tool>
按日期范围搜索

查找特定日期范围内的漏洞利用:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_date_range</tool_name>
<arguments>
{
  "start_date": "2024-01-01",
  "end_date": "2024-12-31",
  "platform": "windows",
  "limit": 20
}
</arguments>
</use_mcp_tool>
按标签搜索

按 ExploitDB 的真实标签搜索漏洞利用:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_tags</tool_name>
<arguments>
{
  "tags": ["SQL Injection (SQLi)", "Remote"],
  "match_all": false,
  "limit": 10
}
</arguments>
</use_mcp_tool>
获取热门漏洞利用

查找最近添加的漏洞利用:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_trending_exploits</tool_name>
<arguments>
{
  "days": 30,
  "limit": 10
}
</arguments>
</use_mcp_tool>
比较漏洞利用

并排比较多个漏洞利用:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>compare_exploits</tool_name>
<arguments>
{
  "ids": [12345, 12346, 12347]
}
</arguments>
</use_mcp_tool>
获取相关漏洞利用

查找与特定漏洞利用相关的漏洞利用:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_related_exploits</tool_name>
<arguments>
{
  "id": 12345,
  "relation_type": "platform",
  "limit": 10
}
</arguments>
</use_mcp_tool>
批量获取漏洞利用

高效检索多个漏洞利用:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>batch_get_exploits</tool_name>
<arguments>
{
  "ids": [12345, 12346, 12347, 12348],
  "include_code": false
}
</arguments>
</use_mcp_tool>
导出搜索结果

以 CSV 或 JSON 格式导出搜索结果:

<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>export_search_results</tool_name>
<arguments>
{
  "query": "wordpress",
  "format": "csv",
  "platform": "php",
  "limit": 100
}
</arguments>
</use_mcp_tool>

配置选项

可使用环境变量或 .env 文件配置服务:

变量描述默认值
CLONE_REPOSITORY是否克隆 ExploitDB 仓库false
REPOSITORY_URLExploitDB 仓库的 URLhttps://gitlab.com/exploit-database/exploitdb.git
CSV_URLExploitDB CSV 文件的 URLhttps://gitlab.com/exploit-database/exploitdb/-/raw/main/files_exploits.csv
DATA_DIR存储数据的目录./data
DB_PATHSQLite 数据库的路径./data/exploitdb.sqlite
UPDATE_INTERVAL更新频率(小时;设为 0 可禁用)24
MAX_RESULTS每次查询返回的最大结果数10

数据来源

此服务使用 Exploit Database 中的数据,该数据库由 Offensive Security 维护。数据通过直接下载 CSV 文件或克隆 ExploitDB GitLab 仓库获取。

数据模型

导入的 CSV(files_exploits.csv)包含 17 列: id, file, description, date_published, author, type, platform, port, date_added, date_updated, verified, codes, tags, aliases, screenshot_url, application_url, source_url。

所有 17 列都会导入并存储:

  • codes — 实际的、以分号分隔的 CVE/OSVDB 参考编号列表(例如 CVE-2017-13262;CVE-2017-13261;OSVDB-12345)。系统会将此列中的所有 CVE 标识符解析到规范化的 exploit_cves 表中,因此,涉及多个 CVE 的漏洞利用都能通过其中每个 CVE 正确查找到。如果 codes 为空(较早的行有时会缺少此字段),服务会改为从描述文本中用正则表达式匹配 CVE 格式。
  • tags — 漏洞利用对应的实际 ExploitDB 标签(例如 SQL Injection (SQLi)、Metasploit Framework (MSF)),按原样存储。这些标签不是根据描述中的关键词匹配推测得出的。
  • aliases — 漏洞利用的其他名称或标识符(例如 dirtycow、ImageTragick),以数组形式提供。
  • screenshot_url、application_url、source_url — 原始 ExploitDB 条目中的参考链接,对应为 screenshotUrl、applicationUrl、sourceUrl。

其他数据质量处理:

  • 日期处理:使用 CSV 中的 date_published;如果缺失,则依次回退到 date_added、date_updated,或在这些字段均缺失时使用默认日期
  • 字段缺失:数据不完整时,为必填字段(author、type、platform)提供合理的默认值
  • 重复 ID:上游 CSV 中少数行具有相同的 id;后续行会覆盖之前的行(按 id 执行 upsert)

每个漏洞利用的 JSON 表示都包含 cve(主要/首个 CVE,为保持向后兼容而保留)和 cves(与该漏洞利用关联的所有 CVE 的完整数组)。

关于 type 的说明:导入的 files_exploits.csv 仅包含 webapps、remote、local、dos 和 hardware 类别的行。ExploitDB 的 shellcode 类别存储在单独的 CSV(files_shellcodes.csv)中,当前此服务不会导入该文件。为保持前向兼容性,shellcode 可用作筛选值,但目前不会匹配任何行。

数据库通常包含:

  • 46,000+ 个漏洞利用,时间跨度从 1988 年至今
  • 33,000+ 个已验证漏洞利用
  • 覆盖 60+ 个平台(PHP、Windows、Linux 等)
  • 27,000+ 个 Web 应用程序漏洞利用
  • 全面的元数据,包括作者、日期、平台、CVE、标签、别名和参考 URL

许可证

本项目采用 MIT License 许可,详情请参阅 LICENSE 文件。

致谢

贡献

欢迎贡献!欢迎提交 Pull Request。

有功能建议或发现了 Bug?请在我们的 GitHub 仓库中提交 issue,或直接通过 [email protected] 联系我们。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。