Hyperfox 技术文档
Hyperfox 是一款安全审计工具,用于代理并记录两个点之间的 HTTP 和 HTTPS 流量。以下为详细的安装指南、使用说明以及项目 API 使用文档。
安装指南
自动安装
你可以通过以下命令将 Hyperfox 的最新版本安装到 /usr/local/bin
(需要管理员权限):
curl -sL 'https://raw.githubusercontent.com/malfunkt/hyperfox/master/install.sh' | sh
如果你不希望通过这种方式安装,你也可以从我们的 发布页面 下载一个发布版本并手动安装。
从源代码构建
要从源代码构建 hyperfox
,你需要安装 Go 语言和 C 编译器:
使用 go install
命令来构建和安装 hyperfox
:
go install github.com/malfunkt/hyperfox
使用说明
Hyperfox 创建一个透明的 HTTP 代理服务器并绑定到本地的 1080/TCP 端口(-addr 127.0.0.1 -http 1080
)。代理服务器读取明文 HTTP 请求并将其重定向到目标目的地(使用 Host
头部来确定目标),当目标目的地响应时,Hyperfox 截获响应并将其转发给原始客户端。
所有在源和目的地之间的 HTTP 通信都会被 Hyperfox 截获并记录到一个自动创建的 SQLite 数据库中。每次 Hyperfox 启动时,都会创建一个新的数据库(例如:hyperfox-00123.db
)。你可以通过显式提供数据库名称来改变这个行为(例如:-db traffic-log.db
)。
基本使用
启动 Hyperfox 并使用默认配置:
hyperfox
使用 cURL
请求任何 HTTP 页面,-x
参数告诉 cURL 使用 Hyperfox 作为代理:
curl -x http://127.0.0.1:1080 example.com
你应该能在 Hyperfox 的输出中看到请求页面的日志:
...
127.0.0.1:44254 - - [11/Apr/2020:19:19:48 -0500] "GET http://example.com/ HTTP/1.1" 200 -1
用户界面 (-ui
)
Hyperfox 提供了一个用户界面,可以通过 -ui
参数启用。这将在新的浏览器窗口中打开 UI:
hyperfox -db records.db -ui
上述命令创建了一个绑定到 127.0.0.1:1984
的 Web 服务器。如果你想更改绑定地址或端口,可以使用 -ui-addr
选项:
hyperfox -db records.db -ui -ui-addr 127.0.0.1:3000
更改 UI 服务器地址在 Hyperfox 运行在远程或无头主机时特别有用,这样可以从另一个主机访问 UI。
启用 UI 同时也启用了最小 REST API(位于 127.0.0.1:4891
),供前端应用程序使用。
请注意,Hyperfox 的 REST API 仅通过一个每次 Hyperfox 启动时都会更改的随机密钥进行保护,根据你的使用场景,这可能不够安全。
在移动设备上运行 Hyperfox UI
当 -ui-addr
参数不同于 127.0.0.1
时,Hyperfox 会输出一个 QR 码,以便更容易地从移动设备连接:
hyperfox -db records.db -ui -ui-addr 192.168.1.23:1984
项目 API 使用文档
Hyperfox 启动 UI 之后,会提供一个基本的 REST API 供前端应用程序使用。API 的具体路径和功能如下:
/api/records
:获取当前会话的所有记录。/api/record/:id
:获取指定记录的详细信息。
这些 API 仅在启用 UI 时可用,并且默认情况下不开放给外部访问。
项目安装方式
Hyperfox 提供了多种安装方式:
- 自动安装脚本。
- 手动下载发布版本。
- 从源代码构建。
请根据你的需求和环境选择合适的安装方式。
- mybatis-plusmybatis 增强工具包,简化 CRUD 操作。 文档 http://baomidou.com 低代码组件库 http://aizuda.comJava03
- open-eBackupopen-eBackup是一款开源备份软件,采用集群高扩展架构,通过应用备份通用框架、并行备份等技术,为主流数据库、虚拟化、文件系统、大数据等应用提供E2E的数据备份、恢复等能力,帮助用户实现关键数据高效保护。HTML056
- 每日精选项目🔥🔥 01.07日推荐:开源 LLM 友好型网络爬虫和抓取工具:Crawl4AI🔥🔥 每日推荐行业内最新、增长最快的项目,快速了解行业最新热门项目动态~~021
- Cangjie-Examples本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。Cangjie043
- 毕方Talon工具本工具是一个端到端的工具,用于项目的生成IR并自动进行缺陷检测。Python039
- PDFMathTranslatePDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/DockerPython04
- advanced-javaAdvanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。JavaScript0106
- taro开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/TypeScript09
- Yi-CoderYi Coder 编程模型,小而强大的编程助手HTML012
- excelizehttps://github.com/xuri/excelize Excelize 是 Go 语言编写的一个用来操作 Office Excel 文档类库,基于 ECMA-376 OOXML 技术标准。可以使用它来读取、写入 XLSX 文件,相比较其他的开源类库,Excelize 支持操作带有数据透视表、切片器、图表与图片的 Excel 并支持向 Excel 中插入图片与创建简单图表,目前是 Go 开源项目中唯一支持复杂样式 XLSX 文件的类库,可应用于各类报表平台、云计算和边缘计算系统。Go02