连击版本传奇脚本后门实现非法获取GM权限原理与排查清理方案

来源: 作者: 点击:
连击版本引擎的脚本后门大多嵌入NPC对话、物品触发、聊天指令、死亡触发等脚本片段内,编写者会隐藏权限变更代码,在满足特定触发条件时调用权限修改指令,直接给当前角色提升管理权限。这类后门不会在M2管理列表内预先添加账号,依靠脚本动态修改人物权限标识,一旦触发成功,普通玩家账号即可调用各类管理指令,调整角色属性、刷取道具、修改地图参数,整套逻辑可以和连击技能体系共存,不会影响连击相关功能正常运行。

脚本后门常见触发形式分为几类,第一种是聊天口令触发,在@OnChat标签段写入字符串匹配逻辑,玩家在聊天框输入预设字符,脚本校验通过后执行权限变更命令,口令可以设置为固定文字、特定符号组合,部分还增加额外校验,需要角色背包持有指定道具才能执行权限提升。第二种是NPC对话触发,在普通功能NPC的对话脚本里增加隐藏分支,正常点击NPC只会展示常规功能菜单,输入隐藏关键词或者选择特定序号选项,才会进入后门分支,执行权限修改。第三种是物品双击触发,在物品数据库绑定@OnTake或者@OnDblClick脚本,玩家双击对应物品,脚本判定角色条件,直接修改人物权限等级,物品外观可以设置成普通消耗道具,不容易被识别。还有一类是死亡、上线触发型后门,角色死亡复活或者登录游戏时,脚本读取人物变量,匹配账号名称或者角色名称,自动授予管理权限。

权限变更核心指令会直接修改人物权限参数,部分引擎使用权限赋值语句,把角色权限数值改为管理等级,权限数值生效之后,该账号就可以执行M2内配置的所有管理命令。很多后门会配套增加权限维持逻辑,权限提升之后写入人物持久变量,角色小退重登权限不会自动消失,需要单独执行清除指令才会恢复普通玩家权限。隐蔽性更强的后门会增加临时权限机制,触发之后仅在本次在线期间保留管理权限,角色下线自动清除,这类后门排查难度更高,没有在线监控记录很难捕捉权限变更行为。还有一些后门增加IP判断,仅指定IP访问时才开放权限修改,其他IP登录触发无效,用于限制使用范围。

后门脚本编写时会做代码混淆处理,把指令拆分到多个子程序,使用变量拼接命令字符串,避免直接搜索关键词就能定位代码。部分脚本会增加多层if嵌套,外层是正常业务逻辑,后门分支藏在多层条件内部,日常使用不会触发,只有满足全部预设条件才执行权限变更。同时增加日志屏蔽代码,关闭本次操作的日志输出,M2日志不会记录权限修改行为,管理人员查看日志无法发现异常操作。

批量查找脚本后门,优先对服务端全部脚本文件进行关键词检索,检索权限变更相关指令,遍历NPC脚本、物品脚本、登录触发脚本、聊天触发脚本。检索时不要只检索完整指令单词,同时检索拆分后的字符串片段,应对混淆处理的代码。检索完成后逐行核对匹配到的代码段,区分正常管理功能代码和恶意后门,正常GM功能会增加账号、IP多重校验,限制只有指定管理员账号才能执行,后门代码缺少严格身份校验,任意玩家满足简单条件即可触发权限修改。

M2控制台需要同步检查游戏命令配置,打开管理命令面板,查看所有管理指令所需权限等级,若有管理命令权限等级设置为0,普通玩家默认权限就可以直接调用,属于高危漏洞,需要把所有管理类命令权限调整至管理等级。检查内置插件扩展命令,部分插件自带额外权限操作指令,插件命令权限配置不当,同样会被利用提升账号权限。

完成后门代码定位之后,直接删除恶意脚本分支,清理相关触发条件、口令、变量赋值代码,删除完成保存脚本文件,执行引擎脚本重载。重载之后新建测试账号,复现触发条件,验证无法再获取管理权限。接着做全场景测试,尝试聊天输入口令、双击对应物品、点击NPC隐藏选项,确认权限修改逻辑不再生效。同时测试原有游戏功能,连击技能、NPC任务、道具兑换等业务逻辑不受代码删除影响。

建立长期防护手段,每次导入外部脚本文件前,全部检索脚本内容,排查隐藏权限操作代码。定期备份干净版本脚本,方便出现异常时对比文件差异,快速定位新增恶意代码。开启完整操作日志记录,保留人物权限变更、道具生成、地图传送相关日志,出现异常账号拥有管理权限时,通过日志回溯触发路径。管理员账号绑定固定IP,限制只有指定IP才能使用管理指令,即便账号被获取,非指定IP依旧无法执行管理操作。定期清理无用NPC、废弃触发物品,减少脚本后门可以隐藏的载体。

出现账号被非法拿到管理权限的应急处理流程,首先关闭服务器外部访问,防止更多账号被利用。查看在线人物列表,立即对异常账号执行权限重置,收回管理权限,封禁对应角色。检索脚本定位后门位置,清理恶意代码,完成修复之后重启引擎。重启之后进入游戏多轮复测,确认漏洞不存在,再开放外部访问。事后核对数据库人物权限字段,批量检查所有账号权限数值,清理残留异常权限账号,避免部分账号持久变量依旧保留管理权限。

需要注意区分脚本后门和引擎本身漏洞,脚本后门依托自定义脚本代码实现,只存在添加了恶意代码的版本,引擎漏洞属于程序底层缺陷,二者处理方式不同。脚本后门清理重点在于检索删除恶意脚本片段,引擎漏洞需要更新引擎程序文件。定期更新引擎程序文件,修复底层已知缺陷,配合脚本审计,双重降低权限被非法获取的风险。不要直接使用来源不明的整套脚本文件,这类文件大概率内嵌各类隐藏脚本分支,包含权限后门、道具刷取后门等多种恶意逻辑。