天度 AI 实战库浏览全部案例 ↗

通过 MCP 使用 Ghidra 反编译 Go 二进制文件

Huli 使用 Cursor 驱动 GhidraMCP 来识别 Golang 二进制文件、列出其路径并查找路径遍历行为,但忽略了 SQL 注入检查。

使用工具Cursor
具体怎么做
Huli 利用故意设计的 SQL 注入和路径遍历技术,构建了一个精简的 Golang 服务器,并使用 GolangAnalyzerExtension 将其加载到 Ghidra 中。随后,他将 GhidraMCP 与 Cursor 连接,使智能体能够调用 Ghidra 的反编译器。该智能体仅被要求识别二进制文件及其功能,并自主向 MCP 发起查询,之后又被要求重构 Go 源代码并检查漏洞。
做到了什么
使用 Cursor 的 composer 1.5 工具后,成功恢复了路由、库和文件结构(仅有少量路由名称错误),并发现了路径遍历漏洞,但 SQL 注入代码已被修复,因此未被发现。在相同的提示词下使用 Opus 4.6 则同时发现了这两种漏洞,但部分路由仍被错误标记。
上手要点
不同模型下的结果差异很大:一个性能较弱的模型(composer 1.5)未能发现同一提示词下性能更强的模型(Opus 4.6)所发现的 SQL 注入问题。

你可以这样试

使用 Cursor

通过 MCP 连接到 Ghidra,对这个 Go 二进制文件 [路径/名称] 进行分析,以识别其路径和端点,然后查找路径遍历或 SQL 注入等漏洞。请给我一份分析结果报告,并将任何不确定的地方标注出来,让我手动重新检查。