大家在测前端表现的时候,都会通过抓包来测试。我们在测试 http 接口的时候,可以用到很多工具协助,例如最常见的 FIddler。但是最近很多接口都加入了安全协议,也就是用了 https 协议,而 Fiddler 抓取 https 很麻烦。
Zed Attack Proxy,简称 zap 这款抓包工具可以抓取 http 和 https 的数据。
https://github.com/zaproxy/zaproxy/wiki/Downloads
以下我们演示一下在移动端如何利用此工具越过客户端判断,向后端提交数据。
我们拿微信最近比较火的 “跳一跳” 游戏作例子:
1.安装完 zap 之后,找到选项菜单,设置本地代理地址,Address 可以去命令窗口通过 ipconfig 查看自己的 ip 地址。
2.然后生成证书后导出到手机里
3.手机内设置安全性,从存储设备内安装证书,安装完后查看 CA 证书,用户那里会有 zap 的证书。
4.然后在手机的网络设置上,使用与代理服务器(PC 端)共用的 wifi,修改网络为静态,代理 ip 和端口填第一步中设置的本地 ip 和 8080 端口。
5.设置完后我们就可以在电脑看到手机访问的所有资源接口。有 http 和 https 的。
6.然后我们先进入微信的跳一跳游戏,可以看到跳一跳的接口前缀是 mp.weixin.qq.com,设置一个 http 断点来截取数据。
7.设置完成后我们再次进去跳一跳,就看到断点出现了,这样我们就可以拿到这个微信号专属的 session id(可以理解为 openid)。
8.因为这个提交分数 的参数 action_data 是经过加密的,所以搜罗到网上一个大神破解的加密方法,然后修改代码中的参数 sessionid 和 score 就可以模拟提交请求了。
Python 代码参考如下:
https://zhuanlan.zhihu.com/p/32473340
记得要安装 requests 和 pycryto 库哦~
执行成功后
另外想要通过修改响应数据来看好友排行榜前端表现的话,也同样通过断点来修改,修改后按继续执行就可以了,那这种比较简单就不演示了。