BurpSuite抓手机端小程序包
一、前言
本篇文章利用BurpSuite + pixel4,对羊了羊小程序进行抓包和改包,尝试通关羊了羊。参考了网上的相关文章,但大部分都是失效的,已经被游戏方修复了。
嗯,这应该就是一篇水文,望海涵。
二、准备工作
2.1 BurpSuite证书配置
我这里直接讲述怎么在手机上配置BurpSuite证书。
在[上一篇博客](https://gal2xy.github.io/2023/07/15/Pixel4刷Lineage OS/#四、添加BurpSuite证书)中,讲述了一种将证书放置系统证书目录下。由于证书配置不正确的原因(但后面想了想,估计是因为手机时间的问题导致https
连接失败),脑子一抽经,将手机刷机回Android10了。然后发现之前的方法不能使用了,因为adb root
在这部手机系统上被限制了。于是跟着报错信息,一路查找,找了多个工具(尝试了adb_root
、adbd-Insecure
、magisk-overlayfs
、RootExplorer
、movecert
),终于有一个有效的有用了插件AlwaysTurstUserCerts。之后在手机的设置->安全->加密与凭证->从存储设备安装,即普通的用户证书安装流程。然后根据证书的哈希值在系统证书目录下查找,惊奇的发现存在了!而且RootExplorer
工具中也允许挂载系统证书目录为可读可写了!
2.2 Edxposed和JustTrustMe安装
证书配置完后,还需要在magisk
上安装JustTrustMe
插件来绕过SSL pinning
,在Edxposed
(其他xposed
都行)上启动,作用域选择微信或者QQ。
2.3 手机代理到电脑上
这一步需要手机和电脑处在同一网络中,查看电脑ip
,然后对手机连接的wife
进行代理设置,代理ip
为电脑ip
,端口只要是没被占用的就行。
以上准备工作不想着重讲述,安装配置的事情都在网络上有参考文章。
三、微信小程序羊了羊抓包改包
同样的小程序在QQ上抓包比较顺利,但在微信上时网络就巨卡了。目前不知道什么原因。所以这里以QQ上的羊了羊作为例子讲解抓包改包。
首先我们先进入到羊了羊的开始游戏界面,先不进行拦截,点击挑战进入消消乐界面,我们可以看到许多流量包,其中URL为/sheep/v1/game/map_info_ex
这个流量包,通过名字就可以知道是获取地图的。
在相应的响应流量包中,map_md5
就是第一、二关的地图的md5
值了。至于map_seed
就是用于生成地图的初始种子,但我们并不知道生成算法。
既然map_md5
是第一、二关的地图的md5
值,那将第二个md5
值覆盖为第一个md5
值不就行了?!
尝试了一下,开启拦截,等到出现这个请求包,右键拦截->响应此请求,继续放行,等到这个响应到来后,篡改map_md5
,再放行,确实可以,但缺点是通关了不会在名片中显示。
(pixel4
没有截屏功能!?)
当然,map_seed
也不是改了没用的,因为毕竟是用初始种子进行加密得到的地图,而这些加密,大概率是会用到位运算的,比如什么左移、右移。假设是这样,我们将种子变得简单点不就行了!
尝试将map_seed
全改为0,第二关的地图如下所示
然后还是有点难,因为虽然看着整齐,但是个数不是3的倍数。
四、总结
在寻找关键请求时,我们可以先不进行拦截,先分析一遍整个请求响应的流量包,其中一些带参数的请求可能比较关键。然后我们可以尝试开启拦截,一个接一个的放行,如果手机端因某个请求流量包的放行而触发了动作,那么可以肯定这个请求是关键的。找到关键请求之后,我们可以修改这个请求的参数或者拦截对应的响应,进一步深入学习。