吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8580|回复: 12
收起左侧

[游戏安全] 【原创】游戏漏洞挖掘之时间竞争风险

[复制链接]
Gslab 发表于 2018-1-17 09:59
本帖最后由 Gslab 于 2018-1-17 10:22 编辑

注:本文部分内容参考《网络游戏安全揭秘》-第5章节,“游戏中的时间状态和bug“ 编写时间竞争风险的定义:众所周知,网络游戏是大型分布式程序的先例,一个游戏,往往配置了成百上千的服务器去存储游戏玩家的各个信息,如帐号信息,财产信息,邮件信息……当成千上万台游戏客户端在不停的向各个服务器发送大量请求时,服务器如何精准的确定每一个客户端端状态并进行同步就面临着一个很大的问题——竞态条件。
竞态条件是游戏中漏洞的来源之一,而时间竞争在众多竞态导致的漏洞中又占了很大一部分。在了解什么是时间竞争风险之前,先来理解什么是时间竞争。
举个简单的例子:A和B有一天约在某小镇的电影院见面,但是因为疏忽,他们忘记了这个小镇有2个电影院1,2,等到了约定的时间,A去了电影院1,B去了电影院2,结果A和B均没有等到对方,这个时候,A和B均想起来,这个小镇还有另外一个电影院,于是,A乘车去了2,B又乘车去了1,结果,他们有一次失之交臂。从上面的实例中可以看出,时间和顺序在里面起了很大的执行作用,于是可以简单的将由不恰当的执行时序导致了非预期的执行效果,称之为时间竞争带来的风险。
时间竞争风险:时间竞争概念较为抽象,可以先来看几个具体的实例:某游戏你正在激励的排位厮杀,但最终还是因为自己一不小心,被对方一套连找到打成残血,就快要输掉这场比赛了,你心里很不甘心,这可是你的定级赛啊,于是你利用游戏漏洞,直接退出PK至选择角色不虚弱和无处罚(地狱模式),此时你的中途退出不会收到游戏的处罚,你可以继续匹配定级某游戏中的技能可以在决斗场中控制对手无法移动,在你与对方PK时,发现招架不住对方的进攻,于是,你对他使用了控制技能后,立刻强制结束进程,此时对方会被你的控制技能一直定住,除非自己认输比赛或者也强制退出游戏。
某游戏为了保证玩家日活跃,推出了奖励丰富的日常任务,但是无奈每天只能领取一次,可是你却可以利用漏洞,在领取任务后迅速推出游戏,然后在进入游戏后即可再次领取每日奖励… 时间竞争在游戏中风险很高,又因为在弄清楚利用方式后,利用又较为简单,有可能只需要关闭下进程,就完成了一次游戏中的漏洞利用,因此时间竞争带来的游戏漏洞传播速度很快,能在短时间内造成玩家大量使用获益,破坏游戏口碑时间竞争存在的原因:通过之前的定义,
可总结时间竞争风险存在的直接原因是:
1. 操作指令执行次数不止一条,或指令数不止一个
2. 操作指令执行时间出现异常客户端将不正确的操作序列发送到了服务器,异常有服务器产生,根本原因是服务器未对非预期的客户端请求进行处理,导致服务器逻辑出错。
为了更好的理解时间竞争导致游戏漏洞出现,在举出一个案例:某游戏内游戏币的充值时间线如下图所示:

如果弄清楚上述的协议交互(事实上交互远比上述要复杂,上述时序图为了表达简化了大量的协议交互过程),可以很清楚发现漏洞所在,当玩家付费时,可以立刻取消付费请求,但此时游戏已经将付费道具发给玩家了,那么玩家就可以无限支付,取消付款,来刷取道具了。时间竞争风险挖掘方式:时间竞争风险挖掘核心是分析在协议交互之间的关系,确定协议间是否存在逻辑上的疏忽。可以通过协议工具很清楚的分析清楚协议交互图,在进一步分析协议交互去分析服务器校验的逻辑,结合协议工具的协议屏蔽功能可以确认服务器校验逻辑是否存在问题。具体可参加下面的例子:某游戏的日常活动领取奖励时,通过协议测试工具,可以弄清楚协议交互如下:

在分析清楚协议交互后,可以很清楚的看到逻辑漏洞,如果最后一条协议——“标记日常奖励已经发放,日常任务结束”协议客户端没有收到,那么后续就可以再次领取日常任务。借助协议工具,直接将这条协议屏蔽,测试后果然出现可以无限刷日常的漏洞了。




*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

免费评分

参与人数 8吾爱币 +8 热心值 +6 收起 理由
旋木过流年 + 1 + 1 谢谢@Thanks!
19950921 + 1 + 1 用心讨论,共获提升!
joseph + 1 + 1 用心讨论,共获提升!
HA? + 1 我很赞同!
lin_xop + 1 + 1 热心回复!
我只是条咸鱼 + 1 + 1 突然想到很多证券也是利用毫秒打时间差
疯狂醉虎 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
sunnylds7 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

stories47 发表于 2018-1-17 10:12
有推荐的协议工具吗
sunnylds7 发表于 2018-1-17 11:02
疯狂醉虎 发表于 2018-1-17 11:14
感谢分享!思路很清晰!也就是内购破解的思路吧!
conan616 发表于 2018-1-17 11:49
这个想法很好  求工具测试
paulzhao 发表于 2018-1-17 12:17
这个是腾讯安全实验室的东西吧?
金化铯 发表于 2018-1-17 12:18
所以有时候比如连点之类的bug就是这种原因?
仗剑行者、 发表于 2018-1-18 05:05
感谢分享
luo961211 发表于 2018-1-18 08:20
我来看看学习一下!
forrest888 发表于 2018-1-18 08:53
原理很清晰,怎么实际应用真是麻烦吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-19 22:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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