灰盒游戏测试之TCP分包引发的BUG

在灰盒测试中因为协议分包导致BUG有不少,下面拿前几天发现的BUG举个例子。


测试副本功能时因为BOSS很强大,就想到利用主城NPC回血功能来打副本,用WPE发送回血协议同时角色在副本战斗,使用安卓模拟器的前端在发包时会分包发送(不清楚分包的自行百度),因为PC的WIN7注册表配置是分包发送,那么问题来啦分包发过程中夹杂着的回血协议。


假设


移动协议是 00 00 29 0F 00 00 04 57 00 00 00 00 00 00 00 18 0A 0A 0D 6A 64 41 43 15 FE 83 23 43 0A 0A 0D 13 95 27 43 15 70 4D 19 43 


回血协议是 00 00 29 7D 00 00 04 57 00 00 00 00 00 00 00 02 08 00 


角色使用移动,正常协议发送是"00 00 29 0F 00 00 04 57 00 00 00 00 00 00 00 18 0A 0A 0D 6A 64 41 43 15 FE 83 23 43 0A 0A 0D 13 95 27 43 15 70 4D 19 43 ",分包发送是:“00 00 29 0F00 00 29 7D 00 00 04 57 00 00 00 00 00 00 00 02 08 00 00 00 04 57 00 00 00 00 00 00 00 18 0A 0A 0D 6A 64 41 43 15 FE 83 23 43 0A 0A 0D 13 95 27 43 15 70 4D 19 43 ”,那么后端在接收这条技能使用的协议时,会对协议进行验证是否完整,因为上述分包夹杂回血协议已经不完整了,后端判断协议不完整或异常T角色下线,角色重登陆后后端崩溃!


那么崩溃是怎么出现的,后端不是已经T角色下线了么? 因为 00 00 29 0F移动协议接口在后端已经生效,但包已经是不完整的了,所以后端将角色移动到未知位置,挂了。


简单说后端T了角色也执行了移动处理。




所以在测试的中也要考虑TCP分包的问题,即使后端做了异常处理,也不排除分包攻击中挂掉

分包攻击以回血协议为例,每次发送1字节

00 

00 

29 

7D 

00 

00 

04 

57 

00 

00 

00 

00 

00 

00 

00 

02 

08 

00 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值