游戏安全实验室 首页 技术入门 查看内容

 阅读目录

收费特权风险

发布于:2018-1-8 16:16   |    162559次阅读 作者: 管理员    |   原作者: TP

使用收费特权漏洞定义

游戏为了刺激玩家消费,往往会设立各种各样的特权功能比如炫酷的表情,变态的道具,闪耀的文字等……一般将能免费使用游戏内收费特权的实现方式称为使用收费特权漏洞。

 

使用收费特权风险分类及危害

众多游戏因自身的区别,导致刺激玩家的消费点也大不相同各个游戏的收费特权不同。先来某一个游戏进行举例:

当你正在玩游戏的时候发现某玩家在不停的发送特权表情,你以为这是一个rmb玩家,在游戏中投入了大笔的金钱,殊不知他只是简单的利用了一下漏洞而已

当你在游戏中访问别人的家园时,告知需要输入密码,你以为这是土豪玩家购买的消费道具,其实也是别人利用游戏中的漏洞而已

你在游戏中体验休闲内玩法时,如果想让电脑代替你自动钓鱼,则需要扣除你的游戏币,但是通过游戏漏洞,可以轻易的无消耗游戏币自动钓鱼,即节省了开支也提高了效率。

不同游戏设计者设计的消费点不同带来的案例也不计其数但从收费特权使用效果上,众多的特权消费点归纳成以下两类:

使用收费特权的危害也显而易见,直接影响到游戏的收入,因为这些收费特权往往带有炫耀功能游戏口碑的破坏也是可想而知的。

 

使用收费特权风险存在原因

之所以存在直接使用收费特权的风险根本原因是服务器的校验疏忽,且特权消费的协议又由玩家感知并加以利用。进一步总结原因归如下:

 

使用收费特权漏洞挖掘方法:

上述风险存在的原因得知,在验证收费特权风险是否存在的方法主要是通过协议层面去大胆猜想测试。而最关键的便是去感知使用收费特权时所产生的协议。通过大量的游戏案列,可将使用收费特权协议的协议简单抽象成如下结构:

Clsid

(协议ID)

Hash/ACK

(hash/序列)

Others

(其他)

Player_uin

请求者ID

Privilege_ID

特权ID

Others

其他

ProtocolHead(协议)

ProtocolData(协议数据包)

一般收费特权协议分为两类。一类是单独存在的,仅仅在触发特权时上行,一类是直接复用了正常的协议,仅仅改变了其中的部分字段。如果特权协议为单独的协议,可通过购买道具支付游戏等正常触发特权操作,去感知协议,协议工具进行拦截并重发如果特权协议复用了普通协议,只是将其中Privilege_ID修改为特权ID时,则可正常触发普通游戏协议,协议工具拦截,修改对应ID为特权ID后进行重发。

我们通过一则案例具体说明漏洞的风险验证方法。某游戏在布置自己的家园时,有部分道具只能通过游戏币进行购买,当玩家使用普通家园道具时,协议工具截获到如下hex数据如下

[30 09 00 07 02 00 15 FE FD 02 E1 2E A4 84 A0 E8 AD 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]

Hex数据被工具切割如下形式:

[30 ] 主协议号

[09 ] 子协议号

[00 07 02 00 ] 协议Hash id

[15 FE FD 02 ] 家居ID

[E1 2E A4 84 A0 E8 AD 17 ] 未知

[00 00 00 00 00 00 00 00 ] 未知

[00 00 ] 未知

[00 00 ] 未知

[00 ] 道具icon编号

[00 00 00 00 00 00 00 00 ] 购买者账户

[00 00 00 00 00 00 00 00 ] 卖家账户

[00 00 ] 道具拥护者

[00 00 00 00 00 00 00 00 ] 编辑数据

[00 00 ] 未知

[00 ] 当前道具状态

分析上述各个协议字段,确定[15 FE FD 02]代表着家居ID可以利用协议工具修改其中家居ID为收费家居ID,在进行重发,即可从NPC获得收费道具了


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

分享到:
踩0 赞0

收藏

上一篇:强制交互类风险

下一篇:任务类风险

最新评论
B Color Image Link Quote Code Smilies

发表评论