通过替换法来尝试修复 Minecraft 客户端的 log4j2 漏洞
今天逛 B 站的时候,偶然刷到一个利用 log4j2 漏洞的视频,利用这个漏洞来测试网易的租赁服,无一例外的全部中招了。截至目前为止我也无法确定这个问题的真实性,因为要试试的话那可是真的刑...
然后 17 开了个 Mod 小服,虽说是服务端方面是修了的,但客户端本身还是存在漏洞的,想试一下去修复它,没想到成功了,具体有效性未知(因为如上原因,且自己也不是网络安全这个方向的,故不进行测试)。下面来介绍一下我的做法
现在现有的教程都是 如何修复服务端 ,但没发现有 如何修复客户端,也是我发此文的目的之一吧,造福大家。如果有别人发过了,也不差我这一篇了吧
客户端情况:Minecraft 1.12.2 Forge 端,并安装了大量的 Mod
下载最新 release
可下载到最新的 apache-log4j-2.15.0-bin.tar.gz
,通过查看 Minecraft 引用的第三方库,得知游戏使用了 log4j-core
和 log4j-api
这两个 lib 文件。
【写完文章后补充】但,2.15.0 和它的 RC1 版本都是没修利索的版本,需要安 RC2 的版本,才能解决问题...
注意:MCBBS 提供的 RC2 (候选发布版)链接,经别人提醒,官网里下到的可能仍有问题,需要使用这个
- https://repository.apache.org/content/groups/snapshots/org/apache/logging/log4j/log4j-core/2.15.1-SNAPSHOT/log4j-core-2.15.1-20211209.191737-4.jar
- https://repository.apache.org/content/groups/snapshots/org/apache/logging/log4j/log4j-api/2.15.1-SNAPSHOT/log4j-api-2.15.1-20211209.191737-4.jar
然后就替换大法了
替换与改名
参考下面两张图
防止游戏无法启动
这里以 HMCL 为例,为了保险,我做了这步。就怕游戏本体对文件有 hash ,我也懒得确定是否有这个情况了,总之能跑就成。不检查游戏完整性的开关打开一下。
成功启动
还是因为 Mod 安的太多了吧,我的笔电不配玩 Mod 服...
题外话
现在也不怎么玩 MC 了吧...刚刚用我的 jdk 去启动,但我 jdk 版本太高了根本跑不了,然后现去下载的 java8 ,然后环境变量成功的被改了...不说了我要去把我环境变量给改回来了...
虽然看不太懂,但是我要点赞