1、mitmproxy安装操作
- ① mitmproxy、mitmweb、middump
- 官方文档介绍
- mitmproxy:和fiddler、charles的差不多的功能,控制台窗口
mitmweb
:可视化界面操作mitmdump
:可以通过用Python对http请求和响应进行实时处理
- ② windows上cmd输入ipconfig查看当前IP,后面设置代理要用到
- ③ mitmproxy、mitmweb、middump安装
- 直接pip install mitmproxy即可安装mitmproxy,或者点击安装exe文件比较快
- 运行命令行mitmdump产生CA证书,此时个人电脑用户目录下会生成一个文件夹.mitmproxy.
- 打开文件夹.mitmproxy.配置证书(windows7和Android),证书配置完成后设置代理
- 直接pip install mitmproxy即可安装mitmproxy,或者点击安装exe文件比较快
- ④ windows配置证书,双击mimproxy-ca.p12,直接点击下一步即可;出现密码设置提示,忽略不设置,直接下一步;证书存储区域选择以下图片内容受信任的根证书颁发机构;最后,如果有安全警告弹出,选择“是”;此时安装导入完成
- ⑤ Android证书配置,将mitmproxy-ca-cert.pem文件或者mitmproxy-ca-cert.cer文件发送到手机上;
- 然后手机打开设置→安全→从手机存储和SD卡存储→搜索mitmproxy-ca-cert文件→搜索到点击安装→输入证书名称mitmproxy→点击确定按钮即可完成安装
- 手机上代理设置IP(windows查询ipconfig),端口8080,这样就配置好了mitmproxy的代理,长按wifi修改网络>高级>手动设置代理
- 然后手机打开设置→安全→从手机存储和SD卡存储→搜索mitmproxy-ca-cert文件→搜索到点击安装→输入证书名称mitmproxy→点击确定按钮即可完成安装
- ⑥ 设置mitmproxy的浏览器局部代理:在准备抓包时可以打开设置,不抓包时就关掉;推荐使用谷歌插件SwitchyOmega_Chromium.crx;用上面ipconfig查询到的代理,端口8080 ;这也是与其它抓包工具不同的地方,需要手动设置浏览器局部代理,打开局部代理后,web页或者安卓才能正常抓包
2、mitmproxy抓包原理
- mitmproxy运行于自己的PC上:mitmproxy会在PC的8080端口运行,然后开启一个代理服务,这个服务实际上是一个HTTP/HTTPS代理
- 手机和PC在同一个局域网内:在一个网络下
- 设置mitmproxy的浏览器局部代理:推荐使用谷歌插件SwitchyOmega_Chromium.crx设置
- 设置手机代理为mitmproxy的代理:这样手机在访问互联网的时候流量数据包就会流经mitmproxy,mitmproxy再去转发这些数据包到真实的服务器,服务器返回数据包是再由mitmproxy转发回手机;这样mitmproxy就相当于起了中间人的作用,抓取到所有的Request和Response
- 抓包过程可以对接mitmdump实时用python操作数据:抓取到的Request和Response的具体内容都可以直接用Python来处理,比如得到Response之后我们可以直接进行解析,然后存入数据库,这样就完成了数据的解析和存储过程
3、mitmweb抓包步骤
- windows下运行mitmweb命令或者直接运行mitmweb.exe,此时会在网页上打开一个窗口,如图所示,更多用法见链接
- 打开已设置好的mitmproxy的浏览器局部代理:推荐使用谷歌插件SwitchyOmega_Chromium.crx设置
- 打开手机百度页面或者PC端的其它页面,此时会出现所有请求和响应的概览,有url,Method,Status,我们可以通过这个页面观察到所有的请求;
- 点击某个请求可以进入请求的详情页面,可以看到host,cookies,user-agent等;其中有Request、Response、Detail列表,可以点击各选项卡查看更详细的内容;
4、mitmweb重发请求
- mitmproxy编辑功能:如图,右侧编辑,点击即可编辑cookie参数、请求参数等,再点击即完成编辑;执行replay后,在响应体中可以看到响应内容