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

可樂敲甜 for 君海游戏QA · 2017年12月31日 · 最后由 佳佳 回复于 2018年01月09日 · 4559 次阅读

大家在测前端表现的时候,都会通过抓包来测试。我们在测试 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 手机如何导入证书

loneyao 回复

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

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

loneyao 回复

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

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册