跳到正文

ExploitPreventer

作者:NikOverflow

一个可防止已知客户端漏洞利用的 Fabric 模组。

收藏

截图

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

ExploitPreventer

这是一款 Fabric 模组,可防止已知的客户端漏洞利用。

免责声明:使用本模组的风险由你自行承担。维护者不对任何封禁或其他后果负责。

如果你想了解使用这些漏洞的服务器或插件,请查看耻辱榜。

谨防虚假下载

请只从 Modrinth 官方页面下载 ExploitPreventer:https://modrinth.com/mod/exploitpreventer

此模组的虚假或非官方版本可能含有恶意代码。

漏洞利用

此模组目前可防护以下漏洞利用:

告示牌翻译漏洞(及其他组件机制)

链接:https://wurst.wiki/sign_translation_vulnerability

服务器可以诱使客户端解析翻译键,并将解析后的文本发送回服务器。服务器借此可以获取客户端安装了哪些模组(通过检查模组专属的翻译键或按键绑定),以及玩家使用的语言等信息。

我们的修复方案:阻止客户端在告示牌和铁砧编辑界面解析翻译键和按键绑定。

通过资源包发起本地 HTTP 请求

链接:https://alaggydev.github.io/posts/cytooxien/

服务器可以通过发送特制的资源包 URL,强制客户端向任意 IP 地址发起 HTTP 请求,包括本地服务(例如 http://localhost:8080)。服务器还能获知请求是否成功,或响应的 SHA1 哈希是否与特定值匹配。服务器可利用这一点检测客户端设备上正在运行哪些本地服务(例如路由器、电视,以及以前的 LiquidBounce)。

我们的修复方案:屏蔽指向本地 IP 地址的资源包 URL。理想情况下,我们希望像浏览器一样,屏蔽所有未包含有效 CORS 标头的 HTTP 响应,但这会破坏向后兼容性。

通过资源包进行设备指纹识别

链接:https://alaggydev.github.io/posts/cytooxien/

服务器可以滥用客户端的资源包缓存,唯一地识别客户端。这样一来,即使玩家更改用户名或 IP 地址,服务器也能跨多个会话追踪用户。

我们的修复方案:为每个账户设置独立的资源包缓存目录。这样,服务器就无法关联不同账户的资源包。

通过插件通道检测模组

一些模组会注册插件通道,以便与服务器通信。服务器可以利用这些通道检测客户端是否安装了某些模组。
这是有意为之的行为,也是许多模组正常运行所必需的(例如实现模组专属功能、网络通信或与服务端插件兼容)。

由于这些信息由模组自身主动公开,本模组不会尝试屏蔽或隐藏插件通道的注册或使用。这样做会破坏模组的正常功能,且超出本项目的范围。

其他模组

还有其他模组也试图实现类似功能。我们不推荐这些模组,因为它们要么正等待我发布补丁,以便将补丁整合进自己的模组;要么完全由 AI 制作;要么只是我这个模组的廉价复制品。

收到死亡威胁

由于本项目旨在揭露某些服务器使用的漏洞并提供防护,我收到了认为这项工作威胁到自身利益者发来的死亡威胁。这些威胁十分严重,我也绝不会置之不理。

不过,他们吓不倒我。即便如此,收到死亡威胁反而更说明本项目切中了要害。发出威胁的人显然有意让这些漏洞继续存在,让玩家得不到保护。我会继续维护和改进这个模组,揭露新发现的漏洞,并更加坚定地为玩家的隐私和安全而努力。恐吓在这里行不通。

如果你知道是谁发出了此类威胁,请向相关部门举报。

漏洞报告

如果你发现了绕过手段或其他客户端漏洞,请通过 Discord 联系 nikoverflow,或发送电子邮件至 [email protected]。请简要说明问题,提供清晰的逐步复现说明、所用的 Minecraft 版本,以及任何相关日志或截图。

常见问题

ExploitPreventer 支持哪些 Minecraft 版本?

ExploitPreventer 支持 Minecraft Java 版 1.21.9–26.3,共 8 个版本,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。

ExploitPreventer 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅客户端。

评论

登录后评论和评分

NikOverflow 的其他作品

查看全部 →