陌陌2019年度个人第一,讲解游戏的逻辑漏洞
2020-02-25 16:28:56 Author: www.secpulse.com(查看原文) 阅读量:216 收藏

_

投稿:月神

配图:M

_
_
_
_
_

    手游安全和web安全没什么区别,也是有逆向和逻辑,内存方面的漏洞。而我要讲的就是我擅长的逻辑漏洞。

    挖逻辑漏洞久了会形成一种自己的思维,比如看到一个软件,首先想到的是会有什么方面的漏洞。理解一个程序为什么会出现这样的漏洞狠重要,因为理解了才能第一时间想到方法复现。手游的黄金时代已经过去了,但是他留给我的经验使我在短时间内进阶成了白帽子。

    先讲一下wpe吧,这是一款封包截取工具,类似burp,burp可以截取到http和https的包,而wpe主要可以截取到socks的包,截取到的包都是16进制的,这里我们不考虑加密的情况,因为我不会解密。

    游戏比app和web的逻辑更复杂,因为其中的交互性更多,功能更复杂。所以挖游戏漏洞我觉得是很好的锻炼逻辑思维的方法。

_
_
_
_

准备工作

    进入正题,首先说下设置,工具我会打包好,准备雷电模拟器,ip代理(app),wpe,ccp(代理),

Ccp设置:

点击设置,下面选择自己的IP,后面打勾,点击确定,最小化就行了。

Wpe:
目标程序,选择CCP进程,点击打开即可

ProxyDroid(app代理)
Host输入CCP中的IP,也就是本机IP,和burp类似,port端口1080,代理类型选择socks5
 

Global proxy把勾选取消,这个是全部代理

Individual Proxy,选这个,然后进去选择你要截取的APP勾选即可

 

 设置完成后,在最上面点击开启,进入游戏后,wpe就能截到包了。

 

 Wpe中功能讲解,第一个按钮是开启截取,最后这个是停止截取,停止截取后就能在界面看到所有封包了。

 

案例

    讲解的实验游戏是某游戏的私服,由于资源多,方便测试,而且测试出漏洞后官方不会发现,方便提交SRC,很多人认为私服漏洞就多余官服,在这里说明一下,私服也是从官服流出来的源码,所以漏洞都是一样的,不存在多少之说,只不过私服可能私自改动一些配置导致了漏洞出现。

    截取到的封包都是16进制的,其实你们在用burp的时候也能看到是16进制的只不过软件给翻译了,而socks和http不同,所以wpe截取到的翻译不过来,只要靠对比和经验来区分每一位都代表什么。不过游戏没加密的话很好区分。在说明一点,我都是自己慢慢摸索出来的这些,也没和别人深入讨论过,所以肯定有很多名词和理解不太一样,就不要较真了,反正是这么个意思。

    截取到的封包你会看到2个端口,1080是本地包,也就是服务器通过代理返回来的包。不用管,只看那个不是1080端口的包,如果截取封包过多,我建议你发送一次,看是否购买成功了来区分这个包是不是你要的。

假如购买商品,如何区分出该商品的数量?
 购买1件:
购买2件:

    经过对比,发现后面的01和02不同,这就是没加密的游戏,直接就能看出来数量是多少,而上面的71和83为什么不同?因为这个游戏每个数据包都会+1,理论上这种做法是防止别人修改才设置的,但是这个游戏貌似做了这个功能但是没使用。不得而知。

那么如何分别道具ID呢?

购买道具:伙伴食物

购买道具:潘多拉幸运礼包

对比得出,一个是96 01,一个是 D5 03,可以换算成10进制,也就是38401和54531。

那么开头的

11代表了什么呢?换算成10进制等于17,其实包头一般都代表了包长

21就是它的包长度,21-4=17,为什么-4呢,很显然这个游戏没有把前四位算进去,每个游戏都需要经过对比分析才能确定,有些游戏包长如果是21的话,那么包头应该是15(16进制),为什么提到了包长和包头呢,因为你如果想增加位数,比如数量想把01改成01 01那么包长变成了22,包头也是要+1位的,也就是下图

01 01代表了257,因为FF+2后进位了,从00 FF变成了01 01。
掌握了这个基础的截取方法就可以进行测试了,按照自己不同的思路去修改。接下来说一下wpe的几个功能:

遍历:在wpe截取到的封包上点击右键,发送

在你要遍历的数字上面双击会变成红色,次数通常是255次(00-FF),100毫秒保证快速遍历。一般都会选择遍历一些道具ID,是否有隐藏道具,活动ID,是否有隐藏活动奖励。

发送列表:

如果你认为这条数据有用,你想保留起来,点击有点,添加到发送列表,就到了左边的发送列表中了,在点击设置此端口ID的发送列表(只要不掉线或者重上游戏,就只设置一次这个就行),这样左侧的数据包你勾选后点击播放按钮就能发送数据了。这个功能一般用于跑号,比如把所有主线任务都按顺序添加,这样直接发送就可以秒做任务成功练出一个成品号(但是这不属于漏洞)
这个就作为基础操作教程吧,如果有兴趣的话我下篇会继续讲解如何修改静态加密的游戏和一些游戏里面的测试思路。

工具地址

App代理:

链接:https://pan.baidu.com/s/1ubVDGR37gHPlv79btMzHxg  提取码:88mo

Ccp:

链接:https://pan.baidu.com/s/13Ci0EEzLbCu3Ik2EjY5fFA  提取码:du29

Wpe:

链接:https://pan.baidu.com/s/1TQENUMW1a7ROnXc9LGwoVA  提取码:hmx6

雷电模拟器自行下载

本文作者:ChaMd5安全团队

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/123753.html


文章来源: https://www.secpulse.com/archives/123753.html
如有侵权请联系:admin#unsafe.sh