投稿:月神
配图:M
手游安全和web安全没什么区别,也是有逆向和逻辑,内存方面的漏洞。而我要讲的就是我擅长的逻辑漏洞。
挖逻辑漏洞久了会形成一种自己的思维,比如看到一个软件,首先想到的是会有什么方面的漏洞。理解一个程序为什么会出现这样的漏洞狠重要,因为理解了才能第一时间想到方法复现。手游的黄金时代已经过去了,但是他留给我的经验使我在短时间内进阶成了白帽子。
先讲一下wpe吧,这是一款封包截取工具,类似burp,burp可以截取到http和https的包,而wpe主要可以截取到socks的包,截取到的包都是16进制的,这里我们不考虑加密的情况,因为我不会解密。
游戏比app和web的逻辑更复杂,因为其中的交互性更多,功能更复杂。所以挖游戏漏洞我觉得是很好的锻炼逻辑思维的方法。
准备工作
进入正题,首先说下设置,工具我会打包好,准备雷电模拟器,ip代理(app),wpe,ccp(代理),
Ccp设置:
点击设置,下面选择自己的IP,后面打勾,点击确定,最小化就行了。
Global proxy把勾选取消,这个是全部代理
Individual Proxy,选这个,然后进去选择你要截取的APP勾选即可
设置完成后,在最上面点击开启,进入游戏后,wpe就能截到包了。
Wpe中功能讲解,第一个按钮是开启截取,最后这个是停止截取,停止截取后就能在界面看到所有封包了。
案例
讲解的实验游戏是某游戏的私服,由于资源多,方便测试,而且测试出漏洞后官方不会发现,方便提交SRC,很多人认为私服漏洞就多余官服,在这里说明一下,私服也是从官服流出来的源码,所以漏洞都是一样的,不存在多少之说,只不过私服可能私自改动一些配置导致了漏洞出现。
截取到的封包都是16进制的,其实你们在用burp的时候也能看到是16进制的只不过软件给翻译了,而socks和http不同,所以wpe截取到的翻译不过来,只要靠对比和经验来区分每一位都代表什么。不过游戏没加密的话很好区分。在说明一点,我都是自己慢慢摸索出来的这些,也没和别人深入讨论过,所以肯定有很多名词和理解不太一样,就不要较真了,反正是这么个意思。
截取到的封包你会看到2个端口,1080是本地包,也就是服务器通过代理返回来的包。不用管,只看那个不是1080端口的包,如果截取封包过多,我建议你发送一次,看是否购买成功了来区分这个包是不是你要的。
经过对比,发现后面的01和02不同,这就是没加密的游戏,直接就能看出来数量是多少,而上面的71和83为什么不同?因为这个游戏每个数据包都会+1,理论上这种做法是防止别人修改才设置的,但是这个游戏貌似做了这个功能但是没使用。不得而知。
购买道具:伙伴食物
购买道具:潘多拉幸运礼包
对比得出,一个是96 01,一个是 D5 03,可以换算成10进制,也就是38401和54531。
那么开头的
21就是它的包长度,21-4=17,为什么-4呢,很显然这个游戏没有把前四位算进去,每个游戏都需要经过对比分析才能确定,有些游戏包长如果是21的话,那么包头应该是15(16进制),为什么提到了包长和包头呢,因为你如果想增加位数,比如数量想把01改成01 01那么包长变成了22,包头也是要+1位的,也就是下图
遍历:在wpe截取到的封包上点击右键,发送
在你要遍历的数字上面双击会变成红色,次数通常是255次(00-FF),100毫秒保证快速遍历。一般都会选择遍历一些道具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