hahwul/gori

GitHub: hahwul/gori

gori 是一款基于 Crystal 构建的终端原生 HTTP 拦截代理与渗透测试工具包,支持人类交互、AI agent 驱动和脚本化三种操作模式。

Stars: 27 | Forks: 1


Hack from the terminal.

安装用法文档贡献

**gori**(고리 —— 韩语中的*环、链接、循环*)位于你的客户端与其目标之间的循环中, 将每一个请求和响应捕获为一个*flow*,你可以跨 HTTP/1.1、HTTP/2、WebSocket、gRPC 和 SSE 对其进行拦截、 重放、模糊测试和扫描。每一个操作也是一个 `gori run` 子命令和一个 MCP 工具, 因此脚本和 AI agent 可以驱动相同的交互。
功能 ### 捕获与拦截 - 适用于 HTTP/1.1、HTTP/2、WebSocket、gRPC 和 SSE 的拦截代理 - 保留、编辑、转发或丢弃传输中的流量 - 可搜索的 History,包含用于过滤的查询语言 - Scope 规则、主机名覆盖以及匹配与替换 ### 重放、模糊测试与转换 - 用于构建和重新发送请求(包括 WebSocket 和 gRPC)的 Replay 工作台 - 具有四种攻击模式的 Intruder 风格 Fuzzer - 用于链式编码 / 解码 / 哈希的 Convert 流水线 - 用于对比两个 flow 差异的并排 Comparer - 内联 JWT / SAML / GraphQL 解码、十六进制视图和美化打印 ### 发现与扫描 - Prism 被动与轻度主动漏洞扫描器 - 用于发现隐藏参数的 Param Miner - 支持 Markdown / JSON 导出的 Findings 分类筛选 ### 键盘优先的工作流 - 命令面板(`Ctrl-P`)和上下文空间菜单(`Space`)可触达每一个操作 - 可重新绑定的热键和可切换的颜色主题 - 支持鼠标、多行编辑和转到行导航 ### 无头模式与可脚本化 - `gori run` 映射每个 TUI 操作以供非交互式使用 - MCP server(`gori mcp`)向 AI agent 公开相同的交互
## 安装说明 ### 快速安装(macOS / Linux) ``` curl -fsSL https://gori.hahwul.com/install.sh | bash ``` 之后可以使用 `gori update` 进行更新(支持二进制安装的自更新;针对 Homebrew / Snap / AUR 提供包管理器指导)。 ### Homebrew ``` brew tap hahwul/gori brew install gori ``` ### 从源码构建 需要 [Crystal](https://crystal-lang.org/) `>= 1.20.2` 和 `pkg-config`。 ``` git clone https://github.com/hahwul/gori.git cd gori shards build --release ``` 二进制文件将写入 `bin/gori`。 ## 用法 gori 通过三个入口点运行一个引擎和一个项目。你可以自己控制、将其交给 AI agent,或者编写脚本,选择最适合当前操控者的方式即可。 ### 适合人类:`gori`(TUI) 启动代理并打开交互式终端 UI。无需子命令: ``` gori ``` 代理默认监听 `127.0.0.1:8070`,简短的首次运行向导会选择 **全局默认** 绑定和主题(项目之后可以固定自己的设置)。要拦截 HTTPS,请信任 gori 的根 CA。最快的方法是使用面板上的 **打开浏览器**(`Ctrl-P`),它会启动一个已受信任且配置好代理的浏览器。捕获的流量会进入 **History**;按 `Ctrl-P` 打开命令面板,或按 `Space` 查看上下文操作。 ``` gori --listen 0.0.0.0 --port 8080 # global bind for this run only (not persisted) ``` ### 适合 AI agent:`gori mcp`(MCP server) `gori mcp` 是一个 [Model Context Protocol](https://modelcontextprotocol.io) server。AI 客户端通过 stdio 启动它,读取你的流量,并驱动与你相同的工具。让 gori 为你的 agent 编写配置,然后重启客户端: ``` gori mcp --install-claude-code # Claude Code (~/.claude.json) gori mcp --install-claude # Claude Desktop gori mcp --install-codex # OpenAI Codex gori mcp --install-agy # Antigravity CLI gori mcp --install-grok # Grok ``` 添加 `--read-only` 以将项目交给不受信任的 agent(仅包含读取工具,不能发送实时请求)。[AI 设置指南](https://gori.hahwul.com/getting-started/ai-setup/) 将引导你连接 agent 并运行你的第一个请求。 ### 适合脚本:`gori run`(无头模式 CLI) `gori run` 映射每个 TUI 操作以供非交互式使用。它是为脚本和 CI 构建的,但也同样适用于手动操作或从 agent 的 shell 中运行: ``` gori run history --format json # dump captured flows as JSON gori run sitemap # endpoints seen so far gori run --help # every subcommand ``` 所有三个入口点共享同一个项目数据库。请参阅 [文档](https://gori.hahwul.com) 获取完整指南,或在应用程序中打开 **Help** 标签页。 ## 开发 ``` shards build # release binary at bin/gori shards run gori # run without installing ``` 如果在链接时因未定义的 `BrotliDecoder*` 符号而失败,说明缺少 `libbrotlidec` 或者 `pkg-config` 找不到它 —— 请参阅 [安装指南](https://gori.hahwul.com/getting-started/installation/) 了解有关系统库和 `-Dwithout_native_codecs` 离线构建的信息。 ## 为什么叫“gori”? gori(고리)是韩语中**环、链接或循环**的意思 —— 这正是该工具所处的位置:在客户端与其目标之间的循环中,捕获并重塑每一个通过的请求。 *置身于循环之中。*
标签:Python工具