使用收费特权漏洞定义:游戏为了刺激玩家消费,往往会设立各种各样的特权功能,比如炫酷的表情,变态的道具,闪耀的文字等等……一般将能免费使用游戏内收费特权的实现方式称为使用收费特权漏洞。
使用收费特权风险分类及危害:众多游戏因自身的区别,导致刺激玩家的消费点也大不相同,故各个游戏的收费特权也随之不同。先来某一个游戏进行举例:当你在正在玩游戏的时候,发现某玩家在不停的发送特权表情,你以为这是一个rmb玩家,在游戏中投入了大笔的金钱,殊不知,他只是简单的利用了一下漏洞而已
当你在游戏中访问别人的家园时,被告知需要输入密码,你以为这是土豪玩家购买的消费道具,其实这也是别人利用游戏中的漏洞而已
当你在游戏中体验休闲内玩法时,如果想让电脑代替你自动钓鱼,则需要扣除你的游戏币,但是通过游戏漏洞,就可以轻易的无消耗游戏币自动钓鱼,即节省了开支也提高了效率。不同游戏设计者设计的消费点不同,带来的案例也不计其数,但从收费特权的使用效果上,却可将众多的特权消费点归纳成以下两类:
使用收费特权的危害也显而易见,直接影响到游戏的收入,又因为这些收费特权往往带有炫耀功能,对游戏口碑的破坏也是可想而知的。 使用收费特权风险存在原因:之所以存在直接使用收费特权的风险,根本原因是服务器的校验疏忽,且特权消费的协议又由玩家感知并加以利用。进一步总结原因归如下:
使用收费特权漏洞挖掘方法:由上述风险存在的原因得知,在验证收费特权风险是否存在的方法主要是通过协议层面去大胆猜想测试。而最关键的便是去感知使用收费特权时所产生的协议。通过大量的游戏案列,可将使用收费特权协议的协议简单抽象成如下结构:[table][tr][td=1,1,65]Clsid(协议ID)[/td][td=1,1,113]Hash/ACK(hash/序列)[/td][td=1,1,56]Others(其他)[/td][td=1,1,94]Player_uin请求者ID[/td][td=1,1,113]Privilege_ID特权ID[/td][td=1,1,109]Others其他[/td][/tr][tr][td=3,1,235]ProtocolHead(协议头)[/td][td=3,1,317]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)
来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |