- 注册
- 2025-02-26
- 帖子
- 11
- 金粒
- 金粒1,260粒
- 钻石
- 钻石0颗
- 嗨币
- 嗨币0个
- 主题 作者
- #1
-
用户
关于米饭和其插件sql后门问题的事件回顾
作者:HikariAwaken,允许任何形式转载。一、序言
2025年3月30日晚上9:06(或稍早些,时间大致),QQ用户【橙汁吖】在反编译米饭的工会插件时,发现cn.handyplus.guild.lib.DbHttpUtil.class类内发现了一句静态字符串“DB_URL”,查看其值后发现,这是一个API接口。
注:admin.ljxmc.top是米饭付费插件用于管理付费插件授权的网站,所有使用米饭付费插件的必须在此网站有账户并绑定机器码、由插件进行验证后方能使用。
在工会2.3.4版本发现相关语句仍然存在。

代码中部分进行了网络请求,此API返回格式化数据md5,插件会基于该返回值执行对应的操作。
基于此点我们提出四个疑问:
- 安全性:插件如何保证自身提供的数据安全无误,不会被中间人攻击等截获修改,以攻击数据库?
- 最小化权限原则:SQL语句执行前,插件应进行语法校验或白名单过滤,但是米饭的代码非常明显的没能看出任何进行了防御的代码逻辑。
- 服务端风险:若米饭服务器遭到入侵,入侵者是否可以通过篡改sql语句攻击所有用户的数据库?
- 操作不透明性:米饭插件运行中几乎没有任何日志,并且大多情况下都不会出现StackTrace,所有的字符串都在代码内联并使用算法进行混淆。
二、解析
让我们一一来看这些问题:1.安全性
观察网址可以发现,提供sql语句服务器使用了https加密,但由于插件未对获取的SQL进行语法检查、权限限制或签名验证,米饭可以在代码中插入任何远程恶意代码,并直接在数据库中执行。出于对Minecraft插件服社区平均技术力的考虑,我认为有大聪明为插件提供root权限的概率有并且极高、若米饭插入恶意代码,造成的影响不可估量。
2.最小化权限原则
同第一项我们知道,客户端无条件信任远程服务器提供的sql语句,若插件处理敏感数据,远程控制的SQL可能导致未授权的数据访问,如果这种情况出现在企业中、该企业通常被视作违反欧盟【GDPR·通用数据保护条例】等隐私法规,但是米饭插件做到了这一点并毫不忌讳。3.服务端风险
答案是肯定的,若米饭服务器遭到入侵,所有使用米饭插件的用户都将自食其果、所有为米饭提供过量数据库权限的用户的敏感数据都将灰飞烟灭。但由于米饭插件仅获取语句进行查询,并没有进行上报等操作,因此可大致认为米饭插件无权泄露用户隐私,这点倒是让我松了口气。4.操作不透明性
虽说Minecraft插件通常不会过多占用服务器管理员的日志内容,但值得注意的是,米饭的插件用户看到最多的应该是【授权验证失败】。三、事件发展
该事件被爆出后,迅速在各大论坛、QQ群中进行传播、米饭的官方交流群受到了各类冲击和谩骂、对此米饭的回应如下:
米饭认为其目的是防止盗版、防止他人进行伪造,无法进行勒索等操作。这个答案在字面上确实是正确的,因为当前插件无法对执行结果进行上报 也无法执行除了sql语句之外的任何内容。
米饭进行回应后,更新了购买须知【第一句仍是禁止退款】,最后对交流群进行了禁言冷处理,并开始清人。

随后,米饭发布了更新,在其插件内添加了防自己逻辑

怕有的人看不懂,大爱内容是,如果发现删库语句,抛出一个错误并停止执行。
但是该语句仍然不能做到防止恶意语句的目的,详见下图:

直到本文撰稿时,已知米饭插件服务器受到了大型DDOS攻击,在这里提醒攻击者、不管你与我是否目的相同。
【如果你打死了米饭插件、会有更多米饭插件出现。为其付费者只会看到手上跑路后剩下的电子遗产】
若你认为这不是代价。那也好。
四、结语
米饭的插件确实存在远程sql攻击等风险、但是无法泄露隐私数据,使用者只要多加注意,仅给予必要权限,仍然可以继续使用米饭插件。但是这句话仅针对于为米饭付费的用户,对于犹豫是否使用米饭插件的朋友,我建议立刻打消这种想法。
米饭有着多年付费插件开发历史,也积累了不少黑粉,此次插件爆雷我认为也是情理之中。衷心希望社区不要放任任何一个犯错的人逍遥法外、希望互联网的记忆再久些、再长些。
就这样。
五、附录
HiMCBBS官方公告:
Minebbs首个投诉贴电子补档以及部分补充(https://www.minebbs.com/threads/ju-...-cha-jian-nei-cun-zai-shan-ku-hou-men.35422/)

Mysql文件读写(https://blog.csdn.net/qq_45927266/article/details/119297840)

限制语句仅在最新版本添加,先前版本均可无条件执行sql代码

有更多会随时补充。欢迎回帖讨论。