抓包 https 与 thrift 解析工具『mitmproxy』

再这篇文章开始以前,我先向以前一直关注个人人道个歉,以前写的两篇文章『iOS概念性解说』有人吐槽,写的有问题,我认可,iOS个人确是初学,我也找了一个作iOS的朋友看了一下,确实写的有些问题,以后关于iOS的文章我会请他审审稿,不会这样轻易发出。javascript


好了,言归正传,说说mitmproxy,其实以前我抓包一直使用的是Charles,有可视化界面,方便快捷,可是不能抓到https的包,虽然也有说能够抓的,可是按照网上的方法来,并无成功,并且,因为如今须要测试thrift,Charles就更显得力不从心了。java

安装

首先你能够经过brew或者pip来进行安装:android

sudo easy_install pip
sudo pip install mitmproxy
sudo brew install mitmproxy复制代码

安装完毕以后就可使用了,可是若是须要解析thrift,须要安装对应的插件ios

sudo pip install flask 
sudo pip install lxml 
sudo pip install thrift  
sudo pip install passlib 
sudo pip install pycrypto 
sudo pip install protobuf 
sudo pip install pyparsing
sudo pip install six==1.10.0复制代码

若是报错还须要装一下libtiff libjpeg webp little-cms2 pillow
若是出现UBInt16错误
能够下降一下版本web

sudo pip install construct==2.5.2复制代码

开始使用

切换到命令行:flask


配置IP地址:
打开你的手机网络,选择手动配置代理:
将电脑的ip地址输入进去,端口8080:

而后打开手机浏览器输入mitm.it进入该网址:浏览器


选择你的平台,下载对应的证书,安装便可。
执行,随便发几个请求,会有以下显示:


点击回车,能够进入查看请求详情:


tab键切换到response:

操做

  • 回车键,或者用鼠标点击进入每一条请求
  • 上下键选择请求
  • q是返回
  • 在请求界面,输入l,根据输入的字符转进行筛选
  • 在请求的详情界面输入/能够搜索字符

    拦截请求

    在请求界面输入i,回车,进入Intercept filter模式:

在后面输入你想拦截的网址便可(不用输入全,能够匹配便可):网络

被拦截的网址为红色,选择该条,点a,进行放行。测试

或者能够选择编辑再发送:
进入详情页,点击e进行编辑:spa


编辑好以后再进行发送。

解析模式

前面说到了thrift的解析,若是你发送的请求使用了thrift,你看不到请求体中的实际内容,都是乱码,这时候在详情页中点击m:

选择对应的模式便可,android是m,ios解析是o。

总结

总的来讲mitmproxy是一款很方便的软件,几乎能知足咱们开发的全部需求(有的须要安装插件),惟一的缺点就是界面不如Charles方便美观,可是已经很是不错了。
有疑问的朋友欢迎给我留言指正,或者关注个人公众号留言:

相关文章
相关标签/搜索