IDEAICU 聚焦 VPS 云服务器评测、AI 工具、自托管部署教程与独立开发实践。

IDEAICU

在 VPS 上部署 CyberChef,处理日志中的编码数据

部署浏览器版 CyberChef,用两层编码样例核对处理顺序,保存 recipe,并检查分享链接是否带入敏感输入。

文章目录

日志里遇到一段 Base64、URL 编码或压缩后的文本,经常要反复切换几个小工具。CyberChef 可以把多个处理步骤排成一份 recipe,观察每一步怎样改变输入。排查同类日志时,保存步骤比只留下最终解码结果更有帮助。

本文部署浏览器版 CyberChef,使用项目发布的 Docker 镜像。VPS 负责提供网页,普通编码与解析操作在使用者的浏览器执行;它不是一个替你长期保存日志的服务器。

一个容器就能提供页面

准备已安装 Docker Engine 与 Compose 的 Linux VPS,以及可 SSH 登录的账号。先通过 SSH 隧道使用,暂不开放公网端口。

这份 CyberChef 部署主要由 VPS 提供静态页面,普通解码计算发生在浏览器。已有 Linux VPS 时可以直接增加一个容器和私人入口;还想一起部署笔记、阅读器等服务,可以查看雨云云服务器,优惠码 KuZhuJi。规格按同机服务总量选择,单纯增加 VPS 内存并不会让浏览器解码更快。

mkdir -p ~/apps/cyberchef
cd ~/apps/cyberchef
umask 077
docker pull ghcr.io/gchq/cyberchef:latest
printf 'CYBERCHEF_IMAGE=%s\n' "$(docker image inspect --format '{{index .RepoDigests 0}}' ghcr.io/gchq/cyberchef:latest)" > .env

核对 .env 中得到的镜像摘要。首次从 latest 获取镜像后,Compose 使用摘要固定版本;升级时再有意识地选择新的镜像。

保存为 compose.yml:

services:
  cyberchef:
    image: ${CYBERCHEF_IMAGE:?请固定镜像摘要}
    restart: unless-stopped
    ports:
      - "127.0.0.1:3013:8080"

当前官方镜像监听容器端口 8080。一些旧教程写的是 80,照抄后可能出现容器已运行但页面打不开的情况。这里不挂载数据目录,因为这份静态页面没有服务器端的个人笔记库。

docker compose config --quiet
docker compose up -d
docker compose ps
docker compose logs --tail=100 cyberchef
curl -I http://127.0.0.1:3013

在自己的电脑运行:

ssh -N -L 3013:127.0.0.1:3013 user@VPS_IP

替换 SSH 账号和 IP,浏览器打开 http://localhost:3013。页面能打开后,用不含敏感信息的输入先做一次操作。

用两层编码示例检查处理顺序

把下面这段文本放入 Input:

JTdCJTIycmVxdWVzdElkJTIyJTNBJTIyZGVtby0wMDElMjIlN0Q=

依次加入 From Base64 和 URL Decode。预期结果是:

{"requestId":"demo-001"}

这是供读者验证页面功能的演示输入,不是实际日志。顺序很关键:Base64 解码后仍有百分号转义,再做 URL 解码才得到 JSON。遇到不熟悉的数据,可以逐步运行并查看中间值,不必一次堆上很多操作。

如果真实输入无法得到可读文本,检查它是否采用 URL-safe Base64、是否缺少补位、是否还有 gzip 压缩,以及字节应按哪种字符集解释。字段“看起来像 Base64”不代表一定是 Base64;解码成功也不代表得到的内容就是正确业务含义。

保存 recipe 时,把步骤和输入分开

CyberChef 可以把 recipe 保存到浏览器本地存储,也支持导出和通过 URL 分享。浏览器本地保存与 VPS 备份没有对应关系:清理站点数据、换浏览器或换设备,都可能让本地 recipe 消失。

准备长期使用的处理方法时,另行保存 recipe 文件,并附上无敏感信息的输入样例与预期输出。这样升级页面或换设备后,还能检查步骤是否得到同样结果。

分享 URL 需要格外留意。CyberChef 的链接可以包含 recipe 和 Base64 编码的输入;编码没有把内容变成秘密。复制链接前检查是否带上完整日志、令牌、邮箱或密钥,清除输入后再分享步骤。对于敏感材料,还应考虑浏览器扩展、截图、剪贴板和接收者的环境,不能仅凭“在浏览器计算”就认为整个操作过程没有泄露可能。

想用域名访问,保护整个静态入口

如果已经在 VPS 宿主机安装 Caddy,准备好域名和 HTTPS,可以代理到 127.0.0.1:3013。私人入口应在代理层加认证或通过 VPN 使用。静态页面本身没有你的服务账号数据库;只保护首页而放行其他路径也不构成完整的访问控制。

只在自己电脑临时使用时,SSH 隧道已经足够,无须给 VPS 额外开 3013 端口。容器代理则应通过共同网络访问 cyberchef:8080,不要使用代理容器自己的回环地址。

升级前保存 Compose、镜像摘要和导出的 recipe。在新镜像里重新运行上面的样例,再检查常用操作、文件输入和导出是否正常。VPS 重建可以恢复页面,个人 recipe 的恢复仍依赖你保存的文件。

镜像与浏览器处理方式见 CyberChef 官方说明,当前容器构建可对照 官方 Dockerfile。

继续阅读 · 自托管实践 返回顶部