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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10663|回复: 11
收起左侧

[游戏安全] 【原创】游戏漏洞挖掘之弹框骚扰类风险

[复制链接]
Gslab 发表于 2018-1-4 11:24
本帖最后由 Gslab 于 2018-1-4 11:26 编辑

弹框干扰风险定义:游戏过程中,客户端经常会以文字类形式对玩家进行说明和指引,而对于一些更为重要的信息便会用游戏中的弹框进行强调
玩家主动触发其他玩家造成重复弹框进而干扰正常游戏的都可以称之为弹框干扰类风险。
弹框干扰风险危害:很多玩家在想,游戏自身就提供了弹框,如果出现了弹框点掉不就好了?能什么风险呢?我们看看以下场景:你在游戏过程中,正在操作着角色时,突然间出现了一个弹框

此时你任何按键,鼠标点击因为这个弹框而失效,你的一次次操作全部失效,角色头顶上显示一个个miss的提示,只能去点掉这个弹框,而对这种即时操作类竞技游戏,最终因为正常游戏操作受到极大干扰而输掉比赛你在游戏排位赛的时候,正在聚精会神盯着屏幕观察战局时,突然屏幕中间出现了下面的弹框

此时别说你的操作了,你连敌人都看不到,怎么可能赢得排位赛?甚者,在你没有进行竞技类游戏操作的时候,也会受到恶意弹框,让根本无法正常游戏以达到他勒索的目的(下图游戏玩家受到弹框勒索进行投诉)

由此可见,看似寻常的弹框类风险,稍加利用便可以游戏玩家带来极大的影响
1. 极大影响游戏平衡:在竞技类游戏中,通过弹框干扰其他玩家正常游戏,最终让其输掉比赛或自己获得收益
2. 极大的破坏游戏口碑:玩家受到弹框干扰,无法正常游戏,极大影响游戏体验,破坏游戏心情,引发游戏玩家的不满和吐槽,最终破坏游戏口碑
3. 弹框风险进一步衍化成游戏内的敲诈勒索风险:利用弹框无限干扰其他玩家达到自己的需求勒索其他玩家向其支付游戏币或游戏道具等)


弹框干扰风险存在原因:结合游戏弹框案列, 无限弹框之所以能成为漏洞,首先需要具备2个属性,一个是可以干扰到玩家游戏,如果弹框对玩家没有干扰效果,那玩家也不一定会去在意,第二个是可以无限进行触发如果弹框触发了一次之后便再也不会出现或者隔一段较长时间才能触发,那对玩家的影响也不会特别大。结合这两个属性,可将弹框的成因进一步归纳如下:



弹框干扰类风险漏洞挖掘方法:根据上述原因分析可知,一般游戏内被动产生的弹框提示(比如游戏指引,玩法说明等)不受玩家控制,产生漏洞的可能性不高,而漏洞主要产生在玩家触发的弹框如何分析提取弹框类协议玩家标志字段弹框干扰类风险挖掘方法的核心。我们将一般弹框类协议格式大体如下:


Clsid(协议ID)
Hash/ACK(hash/序列)
Others(其他)
Player1_uin请求者ID
Player2_uin接受者ID
Flags接受/拒绝标志
ProtocolHead(协议)
ProtocolData(协议数据包)
MsgBox_Len(弹框内容长度)
MsgBox_Text (弹框文本内容)
MsgBox_Type弹框类型
Others其他字段
ProtocolData(协议数据包)

漏洞挖掘的关键是,确认其中的玩家uin(协议中对玩家的标记),并替换你想要攻击的玩家,进行协议重发,观察服务器的反馈情况具体参加下面例子:游戏在游戏比赛中存在着邀请玩家和拒绝玩家两条协议,案例情景B玩家A发送邀请,玩家A拒绝了邀请,拒绝协议经服务器B。
大体协议交互为下图



利用工具,可将A玩家拒绝B的协议3和4截获
协议3(A玩家拒绝B的上行数据包)的数据包截获为:
[BF 02 C0 F1 0c 00 BF 02 C0 A5 50 B1 A5 A0 B8 98 8D 02 00 00 00]通过协议切割,
可解析成[BF 02 C0]
协议号[F1 0C 00 BF 02 C0 ]
[A5 50 B1 A5] :被拒绝玩家UIN(指玩家B
[A0 B8 98 8D] :主动拒绝玩家UIN(指玩家A
[02 00 00 00]:拒绝码,01或者02对方玩家被弹框,发送多条协议会叠加弹框协议4(A玩家拒绝B的下行数据包截获为:[C0 02 C1 F1 0C 00 C0 02 C1 A0 B8 98 8D A5 50 B1 A5 02 00 00 00]
协议工具解析成:[C0 02 C1]:协议号[F1 0C 00 C0 02 C1 ]
[A0 B8 98 8D]:主动拒绝玩家(指玩家A
[A5 50 B1 A5]:被拒绝玩家(指玩家B
[02 00 00 00 ]:拒绝码,01或者02对方玩家被弹框,发送多条协议会叠加弹框分析上述协议如果我们将上述协议3多次重发,那么在游戏中,玩家B就会收到多个拒绝类型的弹框,而我们可分析得到其他玩家C或者D的uin, 替换到协议3中被拒绝玩家UIN字段里,那么就可以攻击指定的玩家了。


类似的,上述协议交互中,协议1协议2同样也会存在着邀请玩家的UIN,我们可以替换成要攻击的玩家,并多次进行协议重发,可以实现邀请类型的协议弹框了。


上述利用方法,可针对一般游戏进行测试,但是往往会遇到一些游戏做了协议重放校验,导致了我们利用工具重发失败一般这种情况下,需要分析协议中否含有类似与验证token,一般这个token属于一次性的,服务器校验通过则会使协议生效,而进行重放的,每次的token都相同,服务器自然会主动丢弃。面对这种情况,则需要通过立项从协议发送点进一步向游戏逻辑层定位,定位到游戏逻辑层对应代码,进行远程调用这个函数,并填写参数为对应的玩家id,进行多次调用,因为此时游戏执行还未到组包函数,调用对应函数会按照游戏自身逻辑组包,绕过大多数协议重放的检测。综上简单的将弹框干扰类风险漏洞挖掘方法总结如下:







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

免费评分

参与人数 6吾爱币 +4 热心值 +6 收起 理由
13473406474 + 1 我很赞同!
沙漠一滩水 + 1 + 1 谢谢@Thanks!
黑莓 + 1 + 1 我很赞同!
SorryyyX + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
lin_xop + 1 热心回复!
肖维野纳 + 1 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| Gslab 发表于 2018-1-4 14:24
yunruifuzhu 发表于 2018-1-4 13:20
不错的思路。可是难度不再这里,而在于什么工具能拦截包。针对于主流网游

有的,后续还在更新~敬请期待
内心xi 发表于 2018-1-4 11:40
yunruifuzhu 发表于 2018-1-4 13:20
不错的思路。可是难度不再这里,而在于什么工具能拦截包。针对于主流网游
a5680497 发表于 2018-1-4 14:18

可以 很强 谢谢分享!
yann 发表于 2018-1-4 17:05
还有这种操作!
爱的温度 发表于 2018-1-4 19:53
“已安抚”亮瞎狗眼。。。。
恶梦玩家 发表于 2018-1-4 21:16
前来看看,好复杂!!!!
734804532 发表于 2018-1-4 21:52
这个好像要过滤数据包。达到发包效果。而游戏里还有一层验证,非大神级别,不敢动手操作这个。
SouthCity 发表于 2018-1-4 23:44
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-4-24 06:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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