前言
? ? ? ? mitmproxy 是一个支持 HTTP 和 HTTPS 得抓包程序,有类似 Charles 和 Fiddler 的功能,不同的是它是一个控制台形式的操作。mitmproxy 有两个相关组件:mitmdump 是 mitmproxy 的命令行接口,可以对接 python 脚本,实现监听后的处理;mitmweb 是一个 web 程序,可以清楚观察mitmproxy 捕获的请求。
Charles 安装与配置:Charles 的安装与配置_Yy_Rose的博客-CSDN博客_charles证书
mitmproxy 的功能
- 拦截 HTTP 和 HTTPS 请求和响应
- 保存 HTTP 会话并进行分析
- 模拟客户端发起请求,模拟服务器返回响应
- 利用反向代理将流量转发给指定的服务器
- 支持 Mac 和 Linux 上的透明代理
- 利用 python 对 HTTP 请求和响应进行实时处理
MuMu 模拟器下载?
mitmproxy 的安装
?
?
证书配置
????????mitmproxy 中想要截取 HTTPS 请求,就需要设置证书,mitmprxoy 在安装设置后会提供一套 CA 证书,只要客户端信任了 mitmproxy 提供的证书,就可以通过 mitmproxy 获取 HTTPS 请求的具体内容,否则 mitmproxy 无法解析 HTTPS 请求,启动 mitmdump 会产生 CA 证书:
Windows?
1. 打开文件夹资源管理器:C:\Users\Administrator\.mitmproxy
2. 点击?mitmproxy-ca.p12?进入证书导入向导,直接点击下一页 ?
?
?
选择证书存储
?
??
3. 证书导入完成
?
弹出安全警告点击:是,即证书导入成功?
??
??
模拟器中配置安全证书
1. 将 mitmproxy-ca-cert.pem 直接拖拽到模拟器中,会自动保存至共享文件夹?
2. 打开设置
??
2. 点击安全
??
3. 选择从SD卡安装?
?
4. 双击进入内部存储空间?
??
5. 进入共享文件夹,会在其中看到之前拖拽进入的文件?
??
6. 双击即可安装 mitmproxy 证书信任
??
7. 证书命名?
??
?
8. 设置→安全→信任的凭据→用户 中验证安装成功
??
mitmproxy 的使用?
- cmd 中 输入 mitmproxy -p 8888 即可打开 mitmproxy,-p 为指定监听端口,更改监听端口可以避免端口被占用导致无法使用,因为手机端设置的局域网代理服务器端口为 8888,需要相对应:
在模拟器中打开任意网页或者APP,mitmproxy 即会监听到相应请求:
- 左下角 2/18 代表一共发生了18个请求,当前箭头所指为第2个请求
- 请求开头 HTTP/HTTPS 网络协议类型
- GET/POST 为请求方式
- 请求地址
- 响应状态码
- 响应内容类型
- 响应体大小
- 响应的时间
方向键或滑轮选中想查看的信息,回车进入,敲击 TAB 或者方向键切换选项卡,敲击 q 键返回
Request 请求信息 → Response 响应信息 → Detail 详细信息?
无法上网原因?
????????设置好证书无法上网是因为没有打开抓包工具,手机和 PC 在同一个局域网内,设置代理为 mitmproxy 的代理地址,这样手机在访问互联网的时候流量数据会流经 mitmproxy,mitmproxy 再去转发这些数据包到真是的服务器,服务器返回数据包时再由 mitmproxy 转发回手机,这样 mitmproxy 就相当于起了中间人的作用,抓取到所有的 request 和 response ,如果设置了代理之后又不打开中间的抓包工具,客户端和web服务器无法进行数据传输:
?
总结
????????以上为抓包程序 mitmproxy 的安装与证书配置,以及在模拟器上的证书设置,如有问题或建议,欢迎评论区指正交流~?
|