如何使用fiddler

前言:

因为要抓一些手机app的请求包,找了很多工具,发现只有fiddler适合。

整体过程:

下载fiddler并安装,打开pc的wifi共享,开启fiddler的代理模式。

手机连接pc共享的wifi,连接设置fiddler开启的代理,安装fiddler的根证书。

打开手机app,这时候就可以在pc端的fiddler里看到所有来自app的流量了。

碰到的问题:

证书有问题,虽然下载安装了对应的根证书。而且发现都是再第二次打开fiddler就会出现这个问题,第一次不会有问题。
后来是下载了fiddler对应iOS的插件解决。
https://www.telerik.com/fiddler/add-ons

  1. fiddler不能抓纯tcp+tls的流量,对于这些自己实现协议的就没办法。也不能抓http2.0和http3.0的流量。
  2. 这一块尝试用wireshark进行抓包,这里主要是无法进行解密。但是理论上所有的请求都是经过fiddler自己的根证书转义过的,应该是有办法处理的。
  3. 有些https请求是要双向认证的,这种的就无法使用fiddler这样的中间人劫持的方式来进行了。

详细流程

  • 下载fiddler并安装

  • 安装fiddler针对安卓和iOS插件

  • 设置fiddler解https流量

    • 点击Tools-Options,然后按如下设置,具体需要哪些tls标准可以自己设定。
  • 设置fiddler开启代理模式

    • 点击Tools-Options,然后按如下设置
  • 手机浏览器下载并安装证书

    • 点击下载该描述文件。
    • 然后去iOS里–通用–描述文件,安装对应的描述文件就可以了。
    • iOS里–通用–关于本机–证书信任设置,信任下该证书就可以了。
  • 打开手机app,这个时候可以看到对应的所有请求信息了。

原理

这个就是典型的中间人攻击,你的所有请求都被fiddler自己的公钥和私钥进行加密和解密。而由于我们信任了fiddler的根证书了,所以一般情况被不会出现异常。
关于什么是中间人攻击,我们直接看下wikipedia吧,https://zh.wikipedia.org/wiki/%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB
因此,对于fiddler不能处理的http2,http3, tcp+tls这种流量,可以使用wireshark进行抓包,然后导入对应的证书就可以处理解析了。
这里https://www.cnblogs.com/zzSoftware/p/3737500.html 也有说明,有时间再实际操作看看。