设为首页收藏本站
  • 官方微信
    lmkj_wx 微信公众号 添加方式:
    1:扫描左侧二维码
  • 手机访问
    lmkj_sj
  •  找回密码
     立即注册

    QQ登录

    只需一步,快速开始

    查看: 6|回复: 0

    如何测试验证修复后的传奇游戏脚本漏洞

    [复制链接]
    avatar
    • 打卡等级:魔龙套勇士
    • 打卡总天数:117
    • 打卡月天数:10
    • 打卡总奖励:13851
    • 最近打卡:2025-08-10 00:32:31

    6538

    主题

    130

    回帖

    8084

    积分

    管理员

    本站站长

    积分
    8084
    online_admin 发表于 4 天前 | 显示全部楼层 |阅读模式
    测试验证修复后的传奇游戏脚本漏洞需系统性覆盖权限控制、经济平衡、触发逻辑等核心场景,结合引擎特性和实战模拟,确保修复后的脚本在真实环境中稳定运行。以下是分阶段的测试方案,包含具体操作步骤和工具推荐:
    一、权限控制漏洞验证
    1. 权限边界测试
    测试场景:验证普通玩家(权限等级 0-99)是否无法执行敏感命令,管理员(权限≥100)是否可正常操作。
    操作步骤:
    创建 3 个测试账号:普通玩家(权限 0)、高级玩家(权限 99)、管理员(权限 100)。
    分别登录账号,执行修复后的敏感命令(如@make、@ChangeMode):
    普通玩家应提示 “权限不足”,后台日志无执行记录。
    管理员应正常执行,且命令效果符合预期(如刷出装备、开启无敌模式)。
    检查引擎配置文件(如!Setup.txt)中的权限等级定义,确保与脚本逻辑一致(如GMLevel=100)。
    2. 隐藏命令测试
    测试场景:验证未公开的管理命令(如@Debug、@Rollback)是否仅管理员可见。
    操作步骤:
    用普通玩家账号输入!CMDS命令,查看可执行指令列表,确保无敏感命令。
    用管理员账号输入!CMDS,确认敏感命令存在且功能正常。
    尝试通过抓包工具(如 Fiddler)构造未公开命令的请求,观察服务器是否响应(应返回Invalid Command)。
    二、经济系统漏洞验证
    1. 资源平衡测试
    测试场景:验证回收 / 合成脚本中Take与Give命令是否成对生效,避免无限刷资源。
    操作步骤:
    回收功能:
    提交 1 个木剑,检查背包是否扣除 1 个木剑,元宝增加 50(假设修复后逻辑)。
    重复提交 10 次,确认背包木剑数量为 0,元宝总量 500,无溢出。
    合成功能:
    提交 10 个铁矿合成青铜剑,检查铁矿减少 10 个,背包新增青铜剑 1 个。
    模拟背包铁矿不足(如只有 5 个),确认合成失败并提示 “材料不足”。
    2. 数值溢出测试
    测试场景:验证金币、经验等数值是否在合理范围内,避免负数值或异常增长。
    操作步骤:
    用管理员账号执行AddGold 999999999(超引擎最大值),观察金币是否显示为上限值(如 2147483647)。
    普通玩家通过任务获取金币,测试单次奖励上限(如 10 万金币),超额输入(如 100 万)应被拦截。
    检查M2Server.log是否有Gold overflow等错误日志。
    三、触发逻辑漏洞验证
    1. 触发次数限制测试
    测试场景:验证经验卷、地图奖励等是否仅触发一次,避免重复获取。
    操作步骤:
    经验卷测试:
    双击经验卷 1 次,确认经验增加且物品消失。
    再次尝试双击,应无反应,变量UsedExpScroll状态为 1。
    地图奖励测试:
    进入地图 100,获取 1000 金币,变量EnterMap100变为 1。
    退出后重新进入,应提示 “已领取奖励”,金币无新增。
    2. 触发媒介消耗测试
    测试场景:验证触发脚本后是否正确消耗媒介(如任务道具、技能书)。
    操作步骤:
    使用@UseSkill命令学习技能,检查技能书是否从背包删除。
    提交任务道具(如 “火龙鳞片”)完成任务,确认道具数量减少,任务状态更新为 “已完成”。
    四、注入类漏洞验证
    1. 输入过滤测试
    测试场景:验证聊天、输入框等是否过滤特殊字符(如;、@、--)。
    操作步骤:
    在聊天框输入;@make 屠龙刀 1,确认消息被拦截,提示 “非法字符”。
    在任务输入框输入' OR 1=1 --,检查是否触发 SQL 注入(应返回Invalid input)。
    用 Burp Suite 拦截请求,修改参数UserID=1;@KickPlayer 张三,观察服务器是否执行额外命令(应拒绝并记录攻击日志)。
    2. 命令注入测试
    测试场景:验证脚本是否正确处理玩家输入,避免命令拼接漏洞。
    操作步骤:
    执行@SetName 张三;@Make 裁决之杖 1,确认角色名仅修改为 “张三”,无刷装备动作。
    检查脚本中<$USERNAME>等变量是否使用CheckValidStr过滤(如CheckValidStr <$USERNAME> 1)。
    五、引擎兼容性与压力测试
    1. 引擎特性测试
    测试场景:验证脚本在目标引擎(如 HeroM2、GOM)上的兼容性。
    操作步骤:
    HeroM2 引擎:检查QFunction-0.txt中的CheckLEVELEX函数是否正确识别权限等级。
    GOM 引擎:测试@UserCmd命令的参数过滤逻辑,确保与引擎文档一致(如CheckAdminLevel)。
    对比不同引擎的日志输出(如M2Server.log、GOMLog.txt),确认无因函数差异导致的报错。
    2. 压力与稳定性测试
    测试场景:模拟高并发操作,验证脚本在压力下的稳定性。
    操作步骤:
    使用自动化工具(如 JMeter)模拟 100 个玩家同时执行@Make命令,持续 10 分钟。
    观察服务器 CPU、内存占用,检查是否出现卡顿或崩溃,日志中是否有Command flood detected等防御记录。
    测试合成 / 回收功能的并发处理,确保资源扣除与增加无延迟或数据不一致(如背包显示异常)。
    六、日志与数据监控
    1. 日志审计
    关键日志检查:
    权限操作:M2Server.log中是否记录管理员执行的@make、@ChangeMode等命令。
    资源变动:ItemLog.txt中是否记录玩家元宝、物品的增减(如Player 张三 Give 元宝 50)。
    攻击尝试:SecurityLog.txt中是否记录非法字符、注入攻击的 IP 和时间戳。
    2. 数据一致性验证
    数据库对比:
    执行@AddExp 100000后,查询数据库Character表,确认Exp字段增加 10 万。
    测试跨服交易后,检查TradeLog表是否记录完整交易信息,无重复或丢失。
    七、模拟攻击与漏洞复现
    1. 历史漏洞复现
    测试场景:验证修复后的脚本是否规避已知漏洞(如红名村刷钱、白日门复制金条)。
    操作步骤:
    红名村任务:提交匕首时卡交易界面,确认无法重复领取金币。
    仓库复制:存入 1002000 金币后捆绑金条,检查金币是否正确扣除,无无限复制。
    2. 自动化攻击测试
    测试场景:使用脚本模拟玩家利用漏洞的行为,验证防御机制有效性。
    操作步骤:
    编写 Python 脚本(基于pyautogui),自动重复触发经验卷、地图奖励等逻辑。
    用 AutoHotkey 模拟快速双击物品,验证是否触发防沉迷机制(如冷却时间)。
    检查服务器是否封禁高频操作的 IP,并记录Attack detected日志。
    八、测试报告与回滚方案
    测试报告模板:
    测试项        测试结果        日志记录位置        修复状态
    普通玩家执行@make        拒绝        M2Server.log        已修复
    经验卷重复使用        拦截        QFLog.txt        已修复
    注入攻击尝试        记录        SecurityLog.txt        已修复
    回滚方案:
    备份修复前的脚本(如QFunction-0_backup.txt)和数据库(Character_backup.sql)。
    若测试发现重大漏洞,5 分钟内回滚至备份版本,通过!Reload命令重启脚本生效。
    九、终极验证:灰度发布与玩家测试
    灰度发布:
    在测试服开放修复后的功能,邀请 50-100 名玩家体验,收集反馈(如 “元宝获取异常”“装备无法合成”)。
    监控实时数据(如元宝产出量、合成成功率),对比修复前后的波动(允许 ±5% 误差)。
    玩家测试:
    组织 “漏洞悬赏” 活动,奖励发现未修复漏洞的玩家(如 100 元 / 漏洞)。
    分析玩家行为数据(如命令执行频率、资源消耗曲线),识别潜在风险点(如某地图访问量激增)。

    通过以上多维度测试,可确保修复后的脚本在权限控制、经济平衡、触发逻辑等核心场景下稳定运行。建议将测试流程整合到 CI/CD 管道,实现自动化回归测试,持续保障游戏安全。

    您需要登录后才可以回帖 登录 | 立即注册 qq_login

    本版积分规则

    QQArchiver 手机版 小黑屋 39传奇素材网 ( 蜀ICP备2022016510号-3 )

    快速回复 快速发帖 返回顶部 返回列表