mitmproxy 的安装使用 与 模拟器上的证书配置

  • Post author:
  • Post category:其他


前言

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 的安装与证书配置,以及在模拟器上的证书设置,如有问题或建议,欢迎评论区指正交流~

相关文章推荐:

使用 mitmproxy + python 做拦截代理 | Wolfogre’s Blog



版权声明:本文为Yy_Rose原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。