mitmproxy抓包
mitmproxy是一个支持HTTP和HTTPS的抓包程序,只不过是一个控制台的形式。
1、安装
pip install mitmproxy
2、证书配置
对于mitmproxy,如果要截取HTTPS请求,就需要设置证书。mitmproxy在安装后回提供一套CA证书,只要客户端信任mimtproxy提供的证书,就可以获取HTTPS请求,否则无法解析。
在Mac客户端配置,运行以下命令产生CA证书,并启动mitmdump
mitmdump
接下来在用户目录下的.mitmproxy目录里找到CA证书,
在Mac中双击mitmproxy-ca-cert.pem,弹出钥匙串管理页面,找到mitmproxy证书,选择“始终信任”。
在ios中安装:将mitmproxy-ca-cert.pem发送给iPhone上,安装描述文件。(推荐用邮箱发送文件,这样手机可以安装。)如果是10.3版本以上的,需要在设置->通用->关于手机->证书信任将mitmproxy的信任开关打开。
3、功能介绍
- 拦截HTTP和HTTPS请求和响应
- 保存HTTP绘画并进行分析
- 模拟客户端发起请求,模拟服务端返回响应
- 利用方向代理将流量转发给指定服务器
- 支持Mac和Linux上的透明代理
- 利用Python对HTTP请求和响应进行实时处理
4、抓包原理
mitmproxy运行在PC上,mitmproxy会在PC的8080端口运行,开启一个代理服务,这个服务实际上是HTTP/HTTPS的代理。手机和PC在同一局域网内,设置代理为mitmproxy的代理地址,手机访问互联网会经过mitmproxy。mitmproxy起到了中间人的作用,抓取所有的Request和Reponse。
这个过程可以对接mitmdump,抓取到的Request和Response的内容直接用Python处理。
5、设置代理
启动mitmproxy输入命令:mitmproxy,会在8080(右下角监听端口)端口运行一个代理服务。
还可以启动mitmproxy也会监听8080端口。
将手机和PC链接在同一局域网下,设置代理为当前代理。首先查看当前局域网的IP地址,输入命令ifconfig。
其中HTTP代理,服务器是PC在局域网下的ip,监听端口为8080。
6、mitmproxy的使用
手机访问任意网页和APP返回请求。
可以点击其中想要查看的url,使用tab来进行切换,e来选择编辑,保存为敲击esc和q,发送请求为r。
7、mitmdump的使用
mitmdump -w 文件(将截获的数据输出到文件中)
mitmdump -s a.py(执行Python文件)