首页 渗透工具 正文

GoFileX 使用指南:专为 GoFile 加密分享设计的字典遍历 TUI 工具,限速防封一应俱全

摘要

遇到设置了密码的 GoFile 分享链接,手头却没有现成工具可以试探密码?市面上大多数脚本要么无脑高频请求、几分钟就把 IP 送进封禁名单,要么完全不讲 API 规范。**GoFileX 的出现正是为了解决这个痛点——这是一款采用 90 年代末 IRC 客户端风格的 TUI(终端图形界面)工具,专为 GoFile 密码字典遍历 场景打造,只与官方文档化的 R...

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

GoFileX TUI 实时会话界面,展示字典队列、账户限额与遍历进度

上图是一次真实运行的会话截图:分享 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
收藏 0
评论
博主关闭了评论
友情链接