Python抓包程序mitmproxy安装和使⽤过程图解
⼀、介绍说明
mitmproxy是⼀个⽀持HTTP和HTTPS的抓包程序,有类似Fiddler、Charles的功能,只不过它是⼀个控制台的形式操作。mitmproxy还有两个关联组件。⼀个是mitmdump,它是mitmproxy的命令⾏接⼝,利⽤它我们可以对接Python脚本,⽤Python 实现监听后的处理。另⼀个是mitmweb,它是⼀个Web程序,通过它我们可以清楚观察mitmproxy捕获的请求。
mitmproxy的功能:
1、拦截HTTP和HTTPS请求和响应
2、保存HTTP会话并进⾏分析
3、模拟客户端发起请求,模拟服务器端返回响应
4、利⽤反向代理将流量转发给指定的服务器
5、⽀持Mac和linux上的透明代理
6、利⽤Python对HTTP请求与响应进⾏实时处理
mitmproxy运⾏与⾃⼰的PC上,在PC的8080端⼝运⾏,然后开启⼀个代理服务,这个服务实际上是⼀个HTTP/HTTPS的代理。
⼿机和PC在⼀个局域⽹内,设置代理是mitmproxy的代理地址,这样⼿机在访问互联⽹的时候流量数据包就会流经mitmproxy,mitmproxy再去转发这些数据包到真实的服务器,服务器返回数据包时再由mitmproxy转发回⼿机,这样mitmproxy就相当于起了中间⼈的作⽤,抓取到所有request和response,另外这个过程还可以对接mitmproxy,抓取到的request和response的具体内容都可以直接⽤python来处理,⽐如:得到response之后我们可以直接进⾏解析,然后存⼊数据库,这样就完成了数据的解析和存储过程。
⼆、安装以及配置
pip install mitmproxy
如果安装失败报错timeout,那就多试⼏遍或者加上参数--timeout秒数
pip --timeout 10000 install mitmproxy
注意:在 Windows 上不⽀持 mitmproxy 的控制台接⼝,但是可以使⽤ mitmdump和mitmweb。
这三个命令功能⼀致,且都可以加载⾃定义脚本,唯⼀的区别是交互界⾯的不同。
mitmproxy命令启动后,会提供⼀个命令⾏界⾯,⽤户可以实时看到发⽣的请求,并通过命令过滤请求,查看请求数据。mitmweb命令启动后,会提供⼀个 web 界⾯,⽤户可以实时看到发⽣的请求,并通过 GUI 交互来过滤请求,查看请求数据。mitmdump命令启动后,没有界⾯,程序默默运⾏,所以 mitmdump ⽆法提供过滤请求、查看数据的功能,只能结合⾃定义脚本,默默⼯作。
证书配置
运⾏mitmdump命令产⽣CA证书,并在⽤户⽬录下的.mitmproxy ⽬录⾥⾯到CA证书,如下图所⽰。
在windows平台下安装证书
点击mitmproxy-ca.p12,就会出现导⼊证书的引导页,如下图所⽰:
然后直接点击下⼀步即可,如果不需要设置密码,继续点击下⼀步。接下来需要选择证书的存储区域,如下图所⽰。
这⾥点击第⼆个选项“将所有的证书都放⼊下列存储”,然后点击“浏览”按钮,选择证书存储位置为受信任的根证书颁发机构”,接着点击“确定”按钮,然后点击“下⼀步”按钮。
最后,如果有安全警告弹出,直接点击“是”按钮即可。这样就完成了CA证书的配置了。
在Android平台下安装证书
在Android⼿机上,需要将mitmproxy-ca-cert.pem⽂件发送到⼿机上,接下来点击证书会出现⼀个提⽰窗⼝。
如果⼿机不能识别.pem⽂件,那就将.cer⽂件复制到⼿机,然后点击安装证书。
这时候输⼊证书名称,例如:mitmproxy,然后点击确定则完成了安装。
安卓⼿机还有⼀种⽅法安装证书
命令⾏输⼊ipconfig查看本机IP,并输⼊mitmweb启动mitmproxy
python能在手机上运行吗
可以看到
Web server listening at 127.0.0.1:8081/
Proxy server listening at *:8080
所以可以确定,我们代理IP端⼝号为8080,于是,在⼿机Wifi设置⼿动代理,输⼊本机IP和端⼝号8080。此时,打开mitmproxy界⾯并操作⼿机,可以看到⼿机请求信息:
选择第⼀个进⾏证书安装,有时⽹络不好,可能页⾯⼀直没有响应。我就遇到这样的问题,最后,多试⼏次,就可以进⼊证书安装界⾯。
成功安装证书后,Go to Settings > General > About > Certificate Trust Settings.
Under “Enable full trust for root certificates”, turn on trust for the mitmproxy certificate.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论