Minecraft(我的世界)中文论坛
标题: [公告]关于部分NukkitX插件存在刷OP权限漏洞的提醒/建议开发者注意NK2.0最新动态
作者: PQguanfang 时间: 2020-3-5 14:22
标题: [公告]关于部分NukkitX插件存在刷OP权限漏洞的提醒/建议开发者注意NK2.0最新动态
本帖最后由 PQguanfang 于 2020-8-31 17:47 编辑
给各位使用NukkitX服务端核心开服的服主们:
现已查实,NukkitX服务端核心中,对于插件的以OP身份执行命令判断机制存在问题。如果您安装了涉及以OP身份执行命令的插件,请立即关注本贴,因为这将可能导致您所开启的NukkitX服务器有玩家刷取OP的风险!
现已在本版中的Nukkit插件专区发现以下插件含有问题,请服主们自行考虑是否需要继续使用下述插件:
●Knickers——菜单插件——其中的玩家点击按钮执行命令中会触发此问题,请修改为以控制台身份执行命令即可
●DogSign——签到插件——其中的玩家签到执行命令功能会触发此问题
●更多插件等待补充,如果您发现哪个插件也会触发此问题,请在本贴回复。本贴禁水。
也请上述插件的作者尽快更新,将您插件中的以OP身份执行命令改为以控制台身份执行命令。同时我们也向各位服主推荐下面的一个插件:
●插件地址:https://www.mcbbs.net/thread-888078-1-1.html
作者: innc 时间: 2020-3-6 14:37
我靠,我是说前段时间怎么op.txt多了一个我不认识的名字,而且翻阅了开服一来所有的日志都没有发现异常,原来是因为这个原因,那天吓死我了,还好那个玩家什么都不知道
作者: 一只鸽纸 时间: 2020-3-6 17:01
我服务器一个玩家用Dogsign不小心卡出来OP,还好是内测元老没搞破坏,还帮忙排查问题
作者: 一只炙寒 时间: 2020-3-6 17:06
Kinckers只要是以op执行命令的均会可能获得op权限
目前的解决方法是,修改为玩家方式或者控制台方式执行命令即可
其他的默认以op权限执行命令的插件都有可能吧
解决方法就是安装个op管理插件,比如Amentia(个人推荐)
(可能对此问题理解不当,大佬勿喷)
作者: innc 时间: 2020-3-6 18:39
看来不止我一个人遇到这个问题呐,莫非这些插件都是进行的临时提权然后再执行特权命令?随后在撤销OP权限?要是真的是这样那的确是很危险,想想就害怕
作者: innc 时间: 2020-3-6 18:42
哎,可能是插件对这种情况处理的不够吧,个人觉得应该在临时提权后把还没来得及撤销权限的名字写到配置文件里,下次服务器启动的时候进行检查并处理,不然要是还没来得撤权就关服就不好了
作者: Kenneth_z 时间: 2020-3-7 15:44
本帖最后由 Kenneth_z 于 2020-3-7 15:45 编辑
两个插件都是给玩家OP,执行完命令在去掉OP,我觉得是很危险的
可以从权限方面入手,不需要非得执行命令都要OP
NK2.0现在还在快速迭代,api都还没定下来,各种蜜汁bug,这个时候推荐开发者使用2.0
作者: 皓月凌空888 时间: 2020-3-7 21:46
本帖最后由 皓月凌空888 于 2020-3-7 21:47 编辑
2.0正式用可能还有点久远
用一些权限管理插件就好了吧
LuckPerms无所畏惧
作者: catrinbow 时间: 2020-3-8 10:23
所以说是核心的问题啦?
作者: 吕易天 时间: 2020-6-14 22:03
本帖最后由 吕易天 于 2020-6-15 07:15 编辑
其实只要用Proxy代替setOp就行了举个例子:
CommandSender pro=(CommandSender)Proxy.newProxyInstance(this.getClass().getClassLoader(),new Class<?>[]{CommandSender.class, InventoryHolder.class, ChunkLoader.class, IPlayer.class},(proxy,method,args)->{
if(method.getName().equals("isOp"))
return true;
return method.invoke(originalPlayer,args);
});
Server.getInstance().dispatchCommand(pro,cmd);
实在不行就用cglib,毕竟nukkit的Player和bukkit的CraftPlayer不一样,没加final(我怀疑bukkit开发团队用了SonarLint,到处给我加final)
如果不嫌麻烦也可以手写静态代理
作者: 吕易天 时间: 2020-6-14 22:34
所以应该用Proxy或cglib而不是直接setOp,直接设置实际op是非常不安全的操作
作者: 烈阳XWIN 时间: 2020-6-25 12:39
本帖最后由 烈阳XWIN 于 2020-6-25 12:41 编辑
看了这文确实很危险,都不敢下载菜单签到系统之类的了,不过如果是可以获得op,是不是添加op管理那些白名单就可以了,比如:AuthorizedOP,或者是后台管理那些(纯属建议大佬不喜勿喷,如果有错十分抱歉
作者: 驻魂圣使 时间: 2020-12-22 22:20
请问一下,nukkit地狱传送门卡顿是怎么回事?进入传送门后两个地图会重叠,然后等大概一分钟后才会分离开来。
作者: 驻魂圣使 时间: 2020-12-22 22:22
请问一下,nukkit地狱传送门卡顿是怎么回事?进入传送门后两个地图会重叠,然后等大概一分钟后才会分离开来。
作者: 齿轮-gear 时间: 2021-2-8 21:36
一般来说都是采取这种措施,先提升OP,然后写入/读取完数据后deop