GoFileX 使用指南:专为 GoFile 加密分享设计的字典遍历 TUI 工具,限速防封一应俱全
遇到设置了密码的 GoFile 分享链接,手头却没有现成工具可以试探密码?市面上大多数脚本要么无脑高频请求、几分钟就把 IP 送进封禁名单,要么完全不讲 API 规范。**GoFileX 的出现正是为了解决这个痛点——这是一款采用 90 年代末 IRC 客户端风格的 TUI(终端图形界面)工具,专为 GoFile 密码字典遍历 场景打造,只与官方文档化的 REST API 通信,并把速率限制**当成铁律来执行:顺序请求、保守的默认间隔、对 429 / error-rateLimit 的指数退避冷却,以及连续触发 429 后的自动暂停,从根本上避免客户端把 IP 撞进封禁名单。

上图是一次真实运行的会话截图:分享 ID、API token、账户 UUID 与已找到的密码均已打码。可以看到右侧实时展示字典队列进度与 GET /contents、GET /accounts 的限额消耗情况。
产品介绍:GoFileX 是什么
GoFileX 由 @abraxas_null 开发,仓库地址为 github.com/abraxas/GoFileX,作者主页与博客分别为 github.com/abraxas 和 abraxaslabs.tech(联系邮箱 [email protected])。
它的诞生源于一场致敬 TESO 的寻宝活动(由 @YogSoth0 发起):第一关是 GoFile,第二关是加密二进制文件。其中 GoFile 这一层是一个受密码保护的公开分享,官方 API 将其暴露为 GET /contents/{id}?password=<sha256-hex>。GoFileX 就是作者为穿过这道"门"而编写的客户端——目标是在不超出未公开的列表配额、不招致 IP 封禁的前提下完成密码字典遍历。
与之配套的复盘文章分为三个阶段:第 0 阶段(引言)、第 1 阶段(第一道门,即本工具)、第 2 阶段(不存在的关卡,针对二进制文件的另一个客户端)。仓库内的 docs/this-is-not-your-password.md 也保存了完整笔记。
核心功能:一款"懂规矩"的 GoFile 密码字典遍历工具
**GoFileX 的功能设计始终围绕"合规地使用 API"展开,主要特性包括:* IRC 复古风 TUI**:基于 Textual 工具包构建, late-90s 美学,所有状态一屏尽览。
- 字典队列管理:支持多字典按顺序排队运行,可从保存的行号断点续跑。
- 会话级进度持久化:每个密码尝试后立即原子写入会话文件,崩溃、断电后无缝恢复。
- 多目标并行追踪:进度按 GoFile 分享 ID 独立保存,切换目标互不干扰。
- 命中即下载:找到密码后可直接用
/dl拉取分享内文件。 - 访客 / Premium 双模式:无 token 时自动铸造访客账户,也支持粘贴 Premium token。
技术优势:把速率限制写成代码逻辑
GoFileX 与其他同类脚本最大的区别,在于它把 gofile.io 官方 API 规则与官方 Web 客户端(wt.obf.js、/myprofile)的行为完整落实到了代码里:
| API 规则 | GoFileX 的实现方式 |
|---|---|
| 一个账户复用 token | 每个会话仅执行一次 POST /accounts,token 存入 ~/.gofilex/sessions/ |
GET /contents/{id}带 Premium 标记 |
发送与官方 Web 客户端一致的 X-Website-Token头,访客即可读取公开分享;来自 /myprofile 的 Premium token 是文档化路径 |
| 密码参数为明文 SHA-256 十六进制 | 每次猜测在离开本机前先完成哈希 |
| error-rateLimit / HTTP 429 → 退避 | 列表调用默认间隔**3s(下限1.5s),任意 API 调用间隔 1s;429 采用指数冷却15s × 2ⁿ**(上限 8 分钟)并把巡航速度加倍;连续 3 次 429 后自动暂停 |
| 确切限制未公开,反复 429 可能封 IP | 间隔硬下限 1.5s,/rate不会低于该值;超时后暂停直到 /heartbeat |
GET /servers限速 1 次 / 10s |
直接不调用 |
此外,密码长度会在本地先按文档所述的 **4–100 字符**范围过滤,过短或过长的字典行永远不会浪费一次宝贵的列表调用。想深入了解协议细节,可延伸阅读 GoFile REST API、GoFile FAQ(速率限制 / IP 封禁)、GoFile website-token 脚本,以及 Textual 与 httpx 这两个底层库。
使用方式:GoFileX 安装与部署教程
环境要求与安装
需要 **Python 3.10+**(可从 python.org 获取),从 GitHub 克隆仓库后创建虚拟环境并安装依赖:
git clone [email protected]:abraxas/GoFileX.git
cd GoFileX
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
启动运行
.venv/bin/python -m gofilex
也可以通过可选参数指定会话名、目标分享与字典文件:
.venv/bin/python -m gofilex \
--session ctf1 \
--target https://gofile.io/d/YOURSHARE \
--wordlist ~/lists/high-signal.txt \
--wordlist ~/lists/nordpass.txt
如果会话中没有 token,客户端会在 /guest 上铸造一个访客账户。务必保存该 token——对访客而言,这是唯一回到该账户的凭证。如果你已有 GoFile 账户(尤其是 Premium),请粘贴来自 gofile.io/myprofile 的 token:
/token YOUR_API_TOKEN
注意:工具没有默认目标。在执行 /heartbeat 或 /start 之前,必须通过 --target 或 /target 将客户端指向某个分享。
TUI 内常用命令速查
| 命令 | 作用 |
|---|---|
/help |
查看命令列表 |
/heartbeat |
发送一次 GET /contents(计入列表预算,不重试);/probe为别名 |
/wl add FILE [FILE…] |
将字典加入队列,按顺序运行,从保存的行恢复 |
/wl all |
将 wordlists/custom/与 wordlists/public/下所有列表加入队列 |
/start /pause /resume /stop |
控制遍历队列的启停 |
/try password |
单次尝试指定密码 |
/rate 5 |
设置列表调用间隔秒数(最小 1.5,默认 3) |
/stats |
刷新 GET /accounts/{id}(用量 / 等级) |
/dl [dir] |
命中后下载文件 |
/session name |
切换可复用会话 |
/target <url\|id> |
切换 GoFile 分享;进度按 ID 分别保留 |
/targets |
列出本会话中存储的所有 GoFile ID |
/quit |
保存并退出 |
快捷键:**F1 = 帮助,Ctrl-S = 开始,Ctrl-P** = 暂停。
崩溃安全恢复机制
所有关键状态都会在**每次密码尝试后*写入 ~/.gofilex/sessions/<name>.json(原子替换,权限 0600),断电或 /quit 留下的检查点完全一致。每个会话包含: 访客 / Premium **API token**
- 指向过的**每一个 GoFile ID**,各自独立记录
- 每个 ID 的字典**路径、行号与字节偏移**
- 最后尝试的密码、已找到的密码、列表快照
- 列表间隔与引擎状态(
idle/paused/running/found)
直接运行 python -m gofilex 会重新打开上一个会话(~/.gofilex/active.json);用 --session other 或 /session other 可开启独立搜寻。/target 切换到另一个 ID 会新建任务并复制当前字典路径(进度从 0 开始),切回来时恢复该 ID 原有的行号。
特别值得称道的一点:崩溃后循环**不会自动重启**——这样已失效的 GoFile IP 不会被反复冲击,手动 /start 才会从保存的行继续。早期写入 ~/.onefilex/ 的旧版本数据会在首次启动时自动迁移到 ~/.gofilex/。
字典准备与离线测试
GoFileX **不附带任何字典**,需要自备,公开来源可参考 wordlists/README.md 中的整理:NordPass 最常见密码、SecLists Passwords、Probable-Wordlists、NCSC 密码指南。建议把高信号 / OSINT 列表放在前面——/wl all 会优先队列 wordlists/custom/ 再跑 wordlists/public/。按每次猜测 3 秒估算,完整跑一遍 rockyou.txt 需要数年的 API 时间,切勿尝试。
项目的测试**仅离线执行**,不会调用 api.gofile.io:
.venv/bin/pip install pytest
.venv/bin/pytest -q
应用场景:什么时候该用 GoFileX* CTF / 寻宝活动:规则允许范围内的密码门破解,正是本工具的设计初衷。
- 自有分享密码找回:自己设置过密码却忘了,需要对自有分享做受控的密码恢复。
- 获得明确授权的渗透测试:在授权范围内验证 GoFile 分享的密码强度。
- API 限速行为研究:学习如何为第三方 API 编写"有礼貌"的客户端,其退避策略本身就有参考价值。
有两样东西是工具无法替你生成的:一是 **Premium token——GET /contents 文档标注仅限 Premium,访客模式能否列出他人分享取决于 GoFile 是否接受官方 Web 应用发送的 website-token 头;如果 /heartbeat 返回 error-notPremium,请用 /token 粘贴来自 gofile.io/myprofile 的 Premium token。二是现成的答案字典**——那本来就是寻宝的意义:读帖子、读相关帖子、构建列表,再让 GoFileX 指向它。
总结与项目链接
**GoFileX 把"粗暴的字典遍历"做成了一个懂 API 规矩、可断点续跑、防 IP 封禁的成熟 TUI 客户端。对于需要合法穿越 GoFile 密码门的用户来说,它是目前少有的、把限速与退避策略真正工程化的开源方案。* 项目仓库**:github.com/abraxas/GoFileX
- 作者 GitHub:github.com/abraxas