告别手工验证!MCP SSE结合AI实现FOFA+PoC全自动化漏洞挖掘
枇杷熟了 AI专栏 1232浏览 · 2025-04-18 03:09

项目背景:

开发FOFA-MCP服务的目的是为了简化通过API进行自动化查询的过程,提高数据获取的便捷性和安全性。告别手工验证!



环境初始化 MCP 开发借助 uv 进行虚拟环境的创建和依赖管理,我们通过

Bash
复制代码
来安装 uv,并通过 uv 进行环境初始化并添加依赖

Bash
复制代码
完成环境搭建后正式进行开发 MCP SSE Server 编写 开发核心是通过 MCP Server 调用 FOFA Api, 有两部分组成: 1、MCP SSE Server 的服务器逻辑实现 2、MCP 调用 FOFA 的逻辑实现 MCP SSE Server 首先 我们完成基础的 MCP SSE Server 的编写, 我们使用 python 库 FastMCP 来实现基础的功能:

Python
复制代码
其中 mcp.run()支持两种格式,一种是常见的 STDIO 的方式,一种是我们的 SSE,函数声明如下:

而@mcp.tool()作为装饰器,可以直接将函数表示为 LLM 可以调用的工具,函数声明如下:

此时我们在终端中直接运行,当看到 FOFA-MCP-Server 运行在 8000 端口的时候,我们就成功的搭建了 MCP SSE Server 了,这时候我们只需要完成 FOFA Api 的调用就可以了! FOFA Search 函数 我们使用异步的方式完成 FOFA 的查询

针对返回的值,我们进行格式化处理,让 LLM 更好的完成搜索结果的呈现:

并同步我们的 @mcp.tool()

这样我们就完成了基础的以 SSE 格式的 MCP Server 的搭建 其他函数完善 我们补充用户状态的查询功能,为了在搜索出现错误时确认是否用户有效,代码如下:

并同步我们的 @mcp.tool()

这样我们的整体就完成了! 完整代码

Cline 配置 我们在 cline 插件中的安装 MCP 服务器中填写我们的服务器 url 完成添加 请注意在路径后需要添加 sse,例如 http://192.168.103.22:8000/sse 才可配置成功



配置完,你应该可以在你的 server 日志上看到 Cline 查询 MCP Server tool 的痕迹,并进行搜索



这里有个小技巧,如果你在当前目录下创建一个 result.json 的文件,Cline 会默认将查询结果写入,方便后续查看和跟踪



Cherry Studio/Witsy 配置 自动化 PoC 验证 下边我们来高端操作,同样使用 MCP 来完成 PoC 的验证 我们会用到 Nuclei MCP 完成相应的验证工作 Nuclei MCP 安装 我们会用到这个开源项目

GitHub - addcontent/nuclei-mcpContribute to addcontent/nuclei-mcp development by creating an account on GitHub.GitHub

如果你没有安装 go,请先安装 go 环境 然后进去目录安装依赖:

安装完依赖后我们跑起来

这样,nuclei_mcp sse server 就在我们本地跑起来 Cline 配置 Nuclei_MCP 同样的方式将我们的 url 输入 http://0.0.0.0:8080/sse完成配置



这样我们就能愉快的让 LLM 使用 FOFA 搜索并用 Nuclei 完成第一个资产的测试就完成了自动化的资产收集和 PoC 验证



特别鸣谢 参考和使用的项目

GitHub - intbjw/fofa-mcp-server: 基于 MCP (Model Control Protocol)的 FOFA API 查询服务器,提供简单易用的 FOFA 数据查询接口。基于 MCP (Model Control Protocol)的 FOFA API 查询服务器,提供简单易用的 FOFA 数据查询接口。 - intbjw/fofa-mcp-serverGitHub

GitHub - addcontent/nuclei-mcpContribute to addcontent/nuclei-mcp development by creating an account on GitHub.GitHub

若有收获,就点个赞吧

0 条评论
某人
表情
可输入 255
目录