吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14698|回复: 21
收起左侧

[游戏安全] 【原创】游戏漏洞挖掘之收费特权风险

  [复制链接]
Gslab 发表于 2018-1-8 14:57
本帖最后由 Gslab 于 2018-1-8 14:58 编辑

使用收费特权漏洞定义游戏为了刺激玩家消费,往往会设立各种各样的特权功能比如炫酷的表情,变态的道具,闪耀的文字等……一般将能免费使用游戏内收费特权的实现方式称为使用收费特权漏洞。
使用收费特权风险分类及危害众多游戏因自身的区别,导致刺激玩家的消费点也大不相同各个游戏的收费特权不同。先来某一个游戏进行举例:当你正在玩游戏的时候发现某玩家在不停的发送特权表情,你以为这是一个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)

免费评分

参与人数 7吾爱币 +7 热心值 +6 收起 理由
jaffa + 1 + 1 谢谢@Thanks!
weihe + 1 + 1 谢谢@Thanks!
e5500236 + 1 谢谢@Thanks!
日后再说、 + 1 + 1 热心回复!
98dex + 1 + 1 谢谢@Thanks!
嶼鯨 + 1 + 1 我很赞同!
满城花祭泪 + 1 + 1 用心讨论,共获提升!

查看全部评分

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

hnliuzesen 发表于 2018-1-9 09:29
想请教一下楼主,像这种更换报文内容,为什么他们不在服务端做验证呢?比如收到安置家具的请求后去扣玩家背包库存,替换了家具ID,扣库存就会失败。如果这样不校验的话,不是可以无限刷家具了。
记得之前DNF还是什么游戏介绍说每个道具都有专门的ID,那这种安放家具操作怎么生成新的ID呢?
是不是一般游戏对客户端发过去的数据都是无条件接收了,验证全在本地做?
leo_zch 发表于 2018-1-10 09:59
hnliuzesen 发表于 2018-1-9 09:29
想请教一下楼主,像这种更换报文内容,为什么他们不在服务端做验证呢?比如收到安置家具的请求后去扣玩家背 ...

也有同样的疑问,哈哈
twomeepo 发表于 2018-1-8 15:22
xiezhonghua1981 发表于 2018-1-8 15:42
这个厉害了 有没有大牛做一个软件出来呀!期待!
嶼鯨 发表于 2018-1-8 16:44
厉害 期待成品
q110 发表于 2018-1-8 17:23
感谢分享心得
icelemon1314 发表于 2018-1-8 17:33
顺便说下协议是怎么加密的塞
bobwuai 发表于 2018-1-8 17:47
厉害,大神就是不一样
taiyangouba 发表于 2018-1-8 20:05
感谢分析!
shghe 发表于 2018-1-9 01:16
厉害 期待成品
吴先生。 发表于 2018-1-9 06:10
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-4-9 07:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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