抓包合计

Charles

Charles抓包http/https

我们都知道Charles在Mac上是一个抓包神器,抓取Http的接口其实都没什么问题,如果是https的可能就会出现如下情况了

安装SSL证书到手机设备

点击 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser,会出现一个小弹框

用手机的safari浏览器打开,其他浏览器不好使

手机端确认安装ssl证书

注意:iOS 10.3系统,需要在 设置→通用→关于本机→证书信任设置 里面启用完全信任Charles证书

如果是iOS 11以上的手机端还要设置一次

Charles设置Proxy

Proxy -> SSL Proxying Settings...

破解

把jar文件覆盖原来的
右键单击图标->显示包内容->Contents->Java

Charles抓取本地电脑的包

因为我们有个游戏是H5做的,,那么我就需要在浏览器运行,同时抓包

电脑勾选charles代理

勾选 Proxy->macOS Proxy

file

设置完成之后,看下代理是否成功 chels4.pngfile

生成证书

file

证书添加到钥匙串,并信任

如果不信任证书,就会出现抓包失败的情况

file

信任证书

file

charles抓取chrome

只需要设置勾选 Proxy->macOs Proxy 即可.. 但是前提是你电脑不能有其他代理

问题

所有设置都正确,确抓不到包

之前遇到一个很奇葩的问题.. 所有设置都正确,就是抓不到包

最后差到时因为我添加的 SSL_Proxying Settings 中的域名设置重复了, 所以就抓不到了.. 很奇葩

mitmproxy

为什么会用他呢.. 因为在我们公司的安卓手机啊,不能抓包https的,调错很难.. 对于装证书,, 我最终也不知道怎么弄.. 安卓的童鞋也不知道

安装mitmproxy

pip install mitmproxy

原理图

file

打开监听

mitmweb --mode reverse:https://example.example -p 10002 --web-port 8088

操作步骤

  • 安卓手机和本机网络建立代理
  • 让安卓童鞋打一个访问本机 127.0.0.1:10002 的包
  • 在 mitmweb 中就能看到请求了