2714491883MP
本帖最后由 2714491883MP 于 2018-9-14 13:20 编辑

原贴:https://ungeek.eu/minecraft-18-file-access/

2014年9月2日,MOJANG发布了1.8版本
并且介绍了在加载世界时使用的内置资源包,包括自定义图像和声音。
这其中包括两个数据包:资源包发送和资源包状态。



在MC的源代码中是这样的:
  1. public void handle(S48PacketResourcePackSend packet) {
  2.   String url = packet.getUrl();
  3.   String hash = packet.getHash();
  4.   
  5.   if (url.startsWith("level://")) {
  6.     String urlWithoutPrefix = url.substring("level://".length());
  7.     File savesDirectory = new File(gameController.mcDataDir, "saves");
  8.     File resourceFile = new File(savesDirectory, urlWithoutPrefix);
  9.    
  10.     if (resourceFile.isFile()) {
  11.             netManager.sendPacket(new C19PacketResourcePackStatus(hash, Action.ACCEPTED));
  12.         // snip, loading the resource.
  13.     } else {
  14.             this.netManager.sendPacket(new C19PacketResourcePackStatus(hash, Action.FAILED_DOWNLOAD));
  15.     }
  16.   } else {
  17.     // snip, handling URLs.
  18.   }
  19. }
复制代码
很明显,服务器只需要发送一个以level://这个URL开头的资源包数据包,游戏将会尝试从“saves”也就是存档目录加载文件,如果文件存在,则发送状态为ACCEPTED的数据包。 如果不是,则发送数据包FAILED_DOWNLOAD。

如果使用"../"可以遍历整个计算机,从而使整个计算机的文件数据处于可泄露的状态之中。 服务器可以检查是否存在甚至是打开计算机上文件,检举计算机用户名......并且可能更糟。 关于更多,请参阅PHP的file_exists和phar文件问题

从玩家的角度来看,这种攻击是不可见的,并且可以在游玩服务器上随时触发。通过批量发送数据包可以加速此漏洞利用。而且客户端甚至是可以将一个文件的HASH值发送给服务端,并且可以只是被检查的路径本身。

如果你的Log文件中出现这样的文字,则代表你的服务器正在尝试利用这个BUG
  1. [0913/140810:INFO:GameCallbacks.cpp(199)] game/bns (Client thread) warn Unable to parse metadata section of resourcepack: servers.dat java.util.zip.ZipException: error in opening zip file.
复制代码
值得一提的是这个漏洞本身在某些服务器上用于检查玩家电脑内是否有作弊Mod,但是这漏洞本身是一个极大的错误


在2016年2月发布的1.9中,已经不再存在这种问题,如果你因为某种原因不得不使用1.8,又不希望自己的数据泄露,可以去看看这个GitHub项目:https://github.com/Sk1er/Resource-Exploit-Fix 它解决了这个问题

2714491883MP
第一次新闻帖 如果错区希望版主能告知,因为我实在是不知道这种东西应该放在哪 1.8已经是旧版本但是很多玩家仍旧停留在1.8

nycnyc
哇,这么多年过去了才知道有这个bug...

雨中的寂寞
发布的好晚

MuChenyu
这么可怕的吗

fang1960810726
哇,那么恐怖?!而且那段Info我感觉特别的熟悉,哪一次崩溃里面看到过

zyjking
本帖最后由 zyjking 于 2018-9-14 16:10 编辑

虽说不是新闻贴,不过这样的东西……发出来也好,应该让大家知道-
看了一下Github上面的文件,安装这个东西是安装mod的方法


奔跑

拜见大佬

2714491883MP
zyjking 发表于 2018-9-14 16:04
虽说不是新闻贴,不过这样的东西……发出来也好,应该让大家知道-
看了一下Github上面的文件,安装这个东西 ...

主要是因为目前PVP仍旧停留在1.8,所以我才发出来

我爱吃蛤
那Hypixel算不算啊?(1.8.9)

hello25
还好我没玩过1.8,1.7.2开始玩的,8 9都没玩过之后的都玩过

南镇
细思极恐啊.....反作弊被用来做不法勾当了?

秋风寒心
2714491883MP 发表于 2018-9-14 13:17
第一次新闻帖 如果错区希望版主能告知,因为我实在是不知道这种东西应该放在哪 1.8已经是旧版本但是很多玩 ...

不仅仅只是玩家,还有大量的服务器......

秋风寒心
我爱吃蛤 发表于 2018-9-16 11:02
那Hypixel算不算啊?(1.8.9)

嗨皮出1.13的版本了

AzureZeng
感谢提醒
目前我玩hyp还用的1.8的端

nggcgg2
2714491883MP 发表于 2018-9-15 18:02
主要是因为目前PVP仍旧停留在1.8,所以我才发出来

救世啊(pvper感谢你 我要发给别人呜呜呜

windy露西
我的天 必须置顶这个贴啊

wuhongxu
版主发布很及时哦

wuhongxu
希望版主继续加油吧

wuhongxu
版主哪里人啊 要不要加个qq讨论下mc啊

reert
秋风寒心 发表于 2018-9-24 07:45
不仅仅只是玩家,还有大量的服务器......

不止大量吧