当前位置 博文首页 > Stefan的博客:Fiddler 抓包工具使用详解

    Stefan的博客:Fiddler 抓包工具使用详解

    作者:[db:作者] 时间:2021-07-21 19:10

    Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。
    Fiddler:译名—小提琴手,由Eric开发,曾就职微软。
    Fiddle支持多个平台的版本:

    由于fiddler是基于.net开发的,所以在windows平台下支持的功能更多, 在IOS\Linux的支持会相对少。

    fiddler 由于官网在国外,下载时间很长还需要翻墙,目前国内有引进,可以在电脑管家中下载安装。

    win8 系统之前用 “Fiddler for.NET2”
    win8 系统之后用 “Fiddler for.NET4”

    Mac/Linux Fiddler 下载地址:
    Windows Fiddler 下载地址
    类似工具

    功能:
    1、能够监听 http/ https 的流量,可以截获从浏览器或者客户端软件向服务器发送的 http/ https 请求;
    2、对截获之后的请求,我们还能够查看请求中的内容;
    3、伪造请求。不仅可以伪造客户端的请求,还能够伪造服务器的响应(方便我们进行前后端的调式);
    4、测试网站的性能;
    5、解密https的外部会话。因为https本身是一种加密的协议,通过fiddle我们可以进行解密操作;
    6、提供第三方扩展插件,满足更多需求。

    代理模式:
    流模式与缓冲模式

    流模式:fiddler会实时把服务器返回给客户端的数据进行返回。

    缓冲模式:fiddler会等待所有的请求都准备好之后才返回给客户端。

    区别:
    缓冲模式下可以控制最后的服务器响应;
    流模式下不能控制,是什么就是什么,更接近浏览器本身的真实行为。

    使用场景

    1、开发环境的host配置;
    2、前后端接口连调——Composer;
    3、定位线上bug——将发布文件代理到本地,快速定位线上bug;
    4、性能分析和优化——Inspectors 、Timeline。

    界面及使用

    Fiddler想要抓到数据包,要确保Capture Traffic是开启
    File –> Capture Traffic 开启后再左下角会有显示,当然也可以直接点击左下角的图标来关闭/开启抓包功能。

    在这里插入图片描述
    工具栏详细介绍
    在这里插入图片描述

    名称含义
    #抓取HTTP Request的顺序,从1开始,以此递增
    ResultHTTP状态码
    Protocol请求使用的协议,如HTTP/HTTPS/FTP等
    Host请求地址的主机名
    URL请求资源的位置
    Body该请求的大小
    Caching请求的缓存过期时间或者缓存控制值
    Content-Type请求响应的类型
    Process发送此请求的进程:进程ID
    Comments允许用户为此回话添加备注
    Custom允许用户设置自定义值
    图标含义
    在这里插入图片描述请求已经发往服务器
    在这里插入图片描述已从服务器下载响应结果
    在这里插入图片描述请求从断点处暂停
    在这里插入图片描述响应从断点处暂停
    在这里插入图片描述请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body)
    在这里插入图片描述请求使用 HTTP 的 POST 方法
    在这里插入图片描述请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道
    在这里插入图片描述响应是 HTML 格式
    在这里插入图片描述响应是一张图片
    在这里插入图片描述响应是脚本格式
    在这里插入图片描述响应是 CSS 格式
    在这里插入图片描述响应是 XML 格式
    在这里插入图片描述响应是 JSON 格式
    在这里插入图片描述响应是一个音频文件
    在这里插入图片描述响应是一个视频文件
    在这里插入图片描述响应是一个 SilverLight
    在这里插入图片描述响应是一个 FLASH
    在这里插入图片描述响应是一个字体
    在这里插入图片描述普通响应成功
    在这里插入图片描述响应是 HTTP/300、301、302、303 或 307 重定向
    在这里插入图片描述响应是 HTTP/304(无变更):使用缓存文件
    在这里插入图片描述响应需要客户端证书验证
    在这里插入图片描述服务端错误
    在这里插入图片描述会话被客户端、Fiddler 或者服务端终止

    Statistics 请求的性能数据分析
    随意点击一个请求,就可以看到Statistics关于HTTP请求的性能以及数据分析了
    在这里插入图片描述
    在这里插入图片描述

    Inspectors 查看数据内容
    Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容:
    在这里插入图片描述
    在这里插入图片描述

    AutoResponder 允许拦截指定规则的请求
    AutoResponder允许你拦截指定规则的求情,并返回本地资源或Fiddler资源,从而代替服务器响应。
    在这里插入图片描述
    在这里插入图片描述

    Composer 自定义请求发送服务器
    前后端接口连调Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求

    在这里插入图片描述

    Post请求:参数写在Request Body里面。

    在这里插入图片描述

    我们还能够伪造Request Header中的Cookie。

    在这里插入图片描述

    Parsed模式下你只需要提供简单的URLS地址即可(如下图,也可以在RequestBody定制一些属性,如模拟浏览器User-Agent)
    在这里插入图片描述
    在这里插入图片描述

    Filters 请求过滤规则
    网络限速FiddlerScript——测试在不同网络下的请求运行状况
    Fiters 是过滤请求用的,左边的窗口不断的更新,当你想看你系统的请求的时候,你刷新一下浏览器,一大片不知道哪来请求,看着碍眼,它还一直刷新你的屏幕。这个时候通过过滤规则来过滤掉那些不想看到的请求。
    在这里插入图片描述
    勾选左上角的Use Filters开启过滤器,这里有两个最常用的过滤条件:Zone和Host

    1、Zone 指定只显示内网(Intranet)或互联网(Internet)的内容:
    在这里插入图片描述
    2、Host 指定显示某个域名下的会话:
    在这里插入图片描述

    OnBeforeRequest()表示在发送一个请求时需要做什么。

    在这里插入图片描述
    添加代码:

    oSession[“resquest-trickle-delay”]=3000;//表示延时3秒请求; 
    oSession[“response-trickle-delay”]=3000;//表示延时3秒响应;
    

    Timeline 请求响应时间
    在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),Timeline 便会显示指定内容从服务端传输到客户端的时间:
    在这里插入图片描述
    在这里插入图片描述

    1. Fiddler 设置解密HTTPS的网络数据

    Fiddler可以通过伪造CA证书来欺骗浏览器和服务器。Fiddler大概原理就是在浏览器面前Fiddler伪装成一个HTTPS服务器,而在真正的HTTPS服务器面前Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的。

    1、解密HTTPS需要手动开启,依次点击:

    Tools > Fiddler Options >  HTTPS
    

    在这里插入图片描述
    2. 勾选Decrypt HTTPS Traffic
    在这里插入图片描述
    3. 点击OK
    在这里插入图片描述

    常用功能
    HOST配置 -将线上的服务器IP配置为指向本地服务器IP。将线上所有的文件的地址都映射到本地。
    在这里插入图片描述
    1、文件替换\线上bug调式——AutoResponder

    (1)可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。
    因此,如果要调试服务器的某个脚本文件,可以将该脚本拦截到本地,在本地修改完脚本之后,再修改服务器端的内容,这可以保证,尽量在真实的环境下去调试,从而最大限度的减少bug发生的可能性。

    (2)不仅是单个url,Fiddler支持多种url匹配的方式:

    I. 字符匹配
    如 example可以匹配 http://www.example.com和http://example.com.cn

    II.完全匹配 以EXACT开头表示完全匹配,
    如上边的例子 EXACT:http://blog.csdn.net/ohmygirl

    III. 正则表达式匹配
    以regex: 开头,使用正则表达式来匹配URL

    如:regex:(?insx).*.(css|js|php)$

    表示匹配所有以css,js,php结尾的请求url

    (3)、操作——模拟
    http://cn.babybus.com/join/index_campus.shtml下的function_campus.js文件
    在这里插入图片描述

    欢迎点赞、关注和评论、一键三连哦!
    如果你也是技术宅,如果你也对技术渴望提升,那么我们是同一类人,欢迎大家关注我的个人公众号,我们一起进步吧!在这里插入图片描述
    如果对你有帮助,赞赏也是对我最大的支持。
    在这里插入图片描述

    cs
    下一篇:没有了