前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >不修漏洞触犯刑法——一个int类型引发的游戏漏洞

不修漏洞触犯刑法——一个int类型引发的游戏漏洞

作者头像
WeTest质量开放平台团队
修改2018-10-29 17:59:17
7790
修改2018-10-29 17:59:17
举报
文章被收录于专栏:WeTest质量开放平台团队的专栏

2015最新刑法规定,不修漏洞要犯法。

下面转载原文:“网络服务提供者不履行法律、行政法规规定的信息网络安全管理义务,经监管部门责令采取改正措施而拒不改正……处三年以下有期徒刑、拘役或者管制”。

因此,做游戏的亲们!安全问题要重视起来了!分享一个腾讯内部的游戏项目安全问题案例,与君共勉。

【背景介绍】

2015年6月,《全民主公》安全测试中发现,由于一个int类型使用错误,形成游戏内“刷”武将等级的漏洞,危害程度爆表。若外挂团队或者是玩家利用此漏洞,可将武将直接刷到顶级。《全民主公》项目经过紧急排查,已经迅速修复了这个漏洞。

【漏洞演示】

1、使用突飞猛进令请求中包含totalExp字段,表示本次使用增加的经验值

2、如下图,使用安全雷达先获取此协议,将totalExp该成一个极小值-2147483648(int32下限),发送请求,武将经验竟变成负值,等级变为0

3、再把totalExp改成相对较大值-2147403647,发送,武将经验变为5241,等级直接升到48!为什么会这样= =!

【漏洞揭秘】

协议安全测试时,测试同学先尝试将经验值字段直接改成较大值,如60000,发送请求,然而并没有什么暖用,角色属性数值没有变化。推测服务器处理这个请求时,有设置异常校验逻辑。

但测试同学把经验值设置成极小值(-2147483648,int32类型下限),发送后竟然生效,武将经验变成负数!

由此可以推测:

1、服务器后台用于保存武将经验totalExp变量是使用有符号类型

2、后台对吃突飞猛将令请求的异常处理仅仅是判断totalExp是否大于n(n为开发设定的某个正整数)。

如果totalExp>n,走进程序异常处理分支,被后台程序丢弃;

如果totalExp<n,走程序正常处理分支,将totalExp按正常逻辑进行运算并保存

基于服务器这样的校验规则,测试人员尝试了下面“刷”的办法,这里不得不提到数值型变量在计算机内存中存储和运算的基础概念:

· -2147483647在计算机中二进制存储为

原码是:1111 1111 1111 1111 1111 1111 1111 1111

补码是:1000 0000 0000 0000 0000 0000 0000 0001

· -2147403647在计算机中二进制存储为

原码是:1111 1111 1111 11101100 0111 0111 1111

补码是:1000 0000 0000 00010011 1000 1000 0001

· 补码相加(为统一的运算,计算机中计算数值加运算是通过补码相加来实现的):

1000 0000 0000 0000 0000 0000 0000 0001

+

1000 0000 0000 0001 0011 1000 1000 0001

于是符号位上溢,得到正值:

0000 0000 0000 00010011 1000 1000 0010 ,换算成十进制即为 80002

总结一下,由于游戏协议结构定义与后台存放经验值变量类型使用不当,导致出现符号位上溢“刷”经验的漏洞。这是多么痛的领悟..与君共勉吧!~

【漏洞危害】

利用漏洞可直接把所有武将刷到满级,使商城中出售的高级突飞猛将令、以及游戏中精心设定出掉落该物品的关卡、掠夺等内容变得没有意义。

漏洞若流出外网,由于利益关系,容易在玩家间形成病毒式传播,一方面影响游戏商城营收,另一方面也会使游戏很多玩法形同虚设,因为此时角色已经不需要更多经验值了。

同时,有关漏洞的效果截图或刷上游戏排行榜截图容易被玩家在各大游戏分发平台论坛传播,对游戏口碑造成的影响也不容小觑。

另外,《拳皇98OL》游戏中也出现类似问题,由于游戏服务器原因,测试环境受限,业务方测试人员后续将测试评估此漏洞影响面。《拳皇98OL》为此开启应急预案,也迅速的修复了该漏洞。这里,提醒其他游戏开发者也注意关注此类数值型变量上下溢出的风险。

【漏洞修复】

1、协议本身设计不合理,吃经验的请求中不需要上报增加经验值字段,只需要指定使用物品的ID或物品类型,由服务器根据ID或类型处理具体增加多少经验 2、后台应改用无符号整型存储武将经验值 3、后台对于客户端请求的异常处理分支当然是不能少的

►欢迎小伙伴们与我们多交流沟通,我们会收集大家的意见,不断优化完善,提供更优质的服务!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯WeTest 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
手游安全测试
手游安全测试(Security Radar,SR)为企业提供私密的安全测试服务,通过主动挖掘游戏业务安全漏洞(如钻石盗刷、服务器宕机、无敌秒杀等40多种漏洞),提前暴露游戏潜在安全风险,提供解决方案及时修复,最大程度降低事后外挂危害与外挂打击成本。该服务为腾讯游戏开放的手游安全漏洞挖掘技术,杜绝游戏外挂损失。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档