接口测试 推荐一款简单易用的抓包工具--Zap

可樂敲甜 for 君海游戏QA · December 31, 2017 · Last by 佳佳 replied at January 09, 2018 · 5798 hits

大家在测前端表现的时候,都会通过抓包来测试。我们在测试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库哦~
执行成功后

另外想要通过修改响应数据来看好友排行榜前端表现的话,也同样通过断点来修改,修改后按继续执行就可以了,那这种比较简单就不演示了。

共收到 5 条回复 时间 点赞

多谢分享,不错的工具

—— 来自TesterHome官方 安卓客户端

如果是iPhone手机如何导入证书

闪耀之冷 回复

百度下iphone如何导入证书,如果不行,弄个安卓虚拟机也可以。

这抓包工具能抓https,非常厉害。谢谢楼主分享

闪耀之冷 回复

用苹果自带的邮箱把cer文件附件过去,但是试用后,发现还是Charles更易用一些
关键:只有苹果自带的邮箱,别人家的不行

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up