Fiddler的使用教程(基础篇)

前言:本次技术分享的目的在于,带领一些没用过抓包的同学认识和学习抓包的基础知识,掌握抓包工具的初步使用

 

1.抓包的定义和用途

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作。

我们技术人员一般使用抓包工具来对项目,软件进行抓取传输数据,分析,测试,定位各种问题,也可以使用工具来模拟构造数据进行测试。下面我们来介绍一款常用的抓包工具【Fiddler】

2.fiddler是什么?

Fiddler(中文名称:小提琴)是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 。它能够记录客户端和服务器之间的所有请求,可以针对特定的请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

3.工作原理

 

工作原理

当浏览器访问服务器会形成一个请求,此时,fiddler就处于请求之间,当浏览器发送请求,会先经过fiddler,然后在到服务器;当服务器有返回数据给浏览器显示时,也会先经过fiddler,然后数据才到浏览器中显示,这样一个过程,fiddler就抓取到了请求和响应的整个过程。

Fiddler是以代理WEB服务器的形式工作的,浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler开启会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

4.使用介绍

安装:

fiddler的安装就不做介绍了,都是一路确定很简单。

使用介绍:

fiddler可以抓取http和https的数据,http的数据直接你可以抓,但是https的数据需要安装证书并进行一些配置。如下所示:

 

打开Fiddler  Tool->Fiddler Options->HTTPS 。  (配置完后记得要重启Fiddler)

 

选中"Decrpt HTTPS traffic",    Fiddler就可以截获HTTPS请求,第一次会弹出证书安装提示,若没有弹出提示,勾选Actions-> Trust Root Certificate

另外,如果你要监听的程序访问的 HTTPS 站点使用的是不可信的证书,则请接着把下面的 “Ignore servercertificate errors” 勾选上。

 

点击Yes,留意一下红框里面的内容,DO_NOT_TRUST_FiddlerRoot ,这个就是证书的名称。 

 

点击跟着步骤安装fiddler证书到你的电脑上。证书名称为【DO_NOT_TRUST_FiddlerRoot】

如果我们想要抓取手机上app的传输数据的话需要在手机上也安装上证书,并作如下设置

 

下面以安卓手机为例展示手机端安装整数和配置端口

首先在pc端打开fiddler并保证手机和电脑在同一网络下,这里设置代理端口号为默认的8888

先查看自己的电脑的ip地址(代打开cmd,输入:ipconfig)

 

在手机的wifi设置中选择你正在连的wifi的,把代理改为手动并配置主机名为电脑的ip;把端口改为设置的代理端口号8888,然后保存。

在手机浏览器输入电脑ip和端口号,如:192.xxx.xxx.230:8888 根据提示下载证书文件,并安装到手机上就可以抓取app的数据了

 

界面说明:

这个是fiddler的主界面

 

 

来看界面的左侧区域

  • #:这里一列是 http request 的顺序,从 1 开始,有多种图标
  • Result:这一列返回的是响应码 如200,304,404等
  • Protocol:这里是协议,一般是显示http或https
  • Host:host地址 ,如:www.baidu.com
  • URL:也就是请求接口,例如 /home/xman/data/tipspluslist 知道protocol+host+URL可以发送一个请求
  • Body:这一列显示的是响应返回的字节数
  • Caching:请求的缓存过期时间或者缓存控制值
  • Content-Type:返回的数据类型
  • Process:这一列标明了进程名和进程PID
  • Comments:这一列是session的注释
  • Custom:这一列允许用户通过 fiddlerscript 脚本设置自定义值

再看界面的右侧区域

右侧区域的上半部分是一个请求的request信息,下半部分是请求的response信息

 

 

  • Statistics 用于分析Http请求的性能和其他数据分析
  • Inspector 分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合HTTP标准的请求和响应头。Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息。Cookies标签可以看到请求的cookie和响应的set-cookie头信息。
  • AutoResponse Fiddler比较重要且比较强大的功能之一。可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。
  • Composer 能进行接口测试,有点像postman,可以模拟发送get,post等请求
  • log 记录日志
  • Filters fiddler的请求过滤和拦截,是熟练使用此工具的重要环节

 

 

好了本次的分享到这里结束了,谢谢大家。