Fiddler使用教程

一、简介及原理

1.1 Fiddler简介

Fiddler 是一个 HTTP 协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的 HTTP 通讯。Fiddler 提供了电脑端、移动端的抓包、包括 http 协议和 https 协议都可以捕获到报文并进行分析;可以设置断点调试、截取报文进行请求替换和数据篡改,也可以进行请求构造,还可以设置网络丢包和延迟进行 APP 弱网测试等。

1.2 抓包原理

如上图,Fiddler 作为一个代理,先是捕捉到客户端的 request 请求,然后再自己转发到服务器端,服务器接收到请求时,会返回一个响应 response ,Fiddler 还是会继续捕捉到服务器的响应请求,再来转发给客户端,简单来说, Fiddler 就是作为一个中间人。

1.3 和charles的区别

  1. charles可以实时过滤请求,fiddler添加过滤器后再发送请求才能起作用

  2. charles可以树状或者列表查看各个请求,更加直观,fiddler只能列表查看

  3. charles可以对某个请求进行断点操作,而fiddler是对所有的请求进行断点

  4. charles模拟弱网是限制带宽,并且可选择只对某个主机路径进行限速;而fiddler是延长时间,并且是对所有接口

Fiddler主要运行在Windows上,而Charles一般在Mac上使用的比较多。

二、安装及配置

2.1 安装

官网:https://www.telerik.com/fiddler

下载网址:Download Fiddler Web Debugging Tool for Free by Telerik

安装教程:Fiddler抓取HTTPS最全(强)攻略

2.2 Fiddler配置

Fiddler 能直接抓取 HTTP 协议请求,要想抓取 HTTPS 请求就需要安装 Fiddler 证书。

具体步骤:

  1. 点击工具栏中 Tools——>Options...

  2. 切换到 HTTPS 选项卡,勾选 Capture HTTPS CONNECTs,勾选 Decrypt HTTPS traffic

  3. 重启 Fiddler

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

2.3 手机抓包配置

  1. 启动Fiddler, 打开菜单栏中的 Tools > Options, 打开“Options” 对话框,切换到“Connections” 选项卡, 然后勾选“Allowromote computers to connect” 后面的复选框, 然后点击“OK” 按钮

  2. 在本机命令行输入: ipconfig, 找到本机的ip地址。

  3. 手机打开浏览器,在地址栏中输入代理服务器的 IP 和端口(即电脑的IP加fiddler的端口),会看到一个Fiddler 提供的页面,安装证书

  4. 打开手机的“设置” ->“WLAN”,找到你要连接的网络,在上面长按,然后选择“修改网络”,弹出网络设置对话框,然后勾选“显示高级选项”(不同的手机,设置方法有所不同)

  5. 在“代理” 后面的输入框选择“手动”,在“代理服务器主机名”后面的输入框输入电脑的ip地址,在“代理服务器端口”后面的输入框输入fiddler端口号, 然后点击“保存” 按钮

  6. 然后启动android设备中的浏览器,访问百度的首页,在fiddler中可以看到完成的请求和响应数据

  1. 三、面板介绍

左侧面板就是捕捉的请求和响应的会话列表,右边面板就是对应请求的详细信息,比如请求头,表单信息等。顶部是Toolbar工具栏,左侧底部是命令行工具。

3.1 Toolbar工具栏

3.2 左侧面板

Fiddler抓取到的http请求(每一条称为一个session)

  • 列表介绍

列名

含义

#

抓取顺序

result

HTTP状态码

Protocol

请求使用的协议,HTTP/HTTPS等

Host

请求地址的主机名

URL

请求资源的位置

Body

该请求的大小

Caching

请求的缓存过期时间或者缓存控制值

Conten-Type

请求响应的类型

Process

发送此请求的过程:进程ID

Comments

允许用户为此回话添加备注

Custom

允许用户设置自定义值

  • session不同颜色的含义

  • session不同图标的含义

3.3 右侧面板

页签

含义

Statistics统计

通过该页签, 用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。选择第一个请求和最后一个请求, 可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多, 从而对页面的访问进行访问速度优化

inspectors检查

它提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息,它分为上下两部分:上部分为HTTP Request(请求)展示,下部分为HTTPResponse(响应)展示

AutoResponse自动响应

Fiddler最实用的功能, 它可以抓取在线页面保存到本地进行调试, 大大减少了在线调试的困难, 可以让我们修改服务器端返回的数据, 例如让返回都是HTTP404或者读取本地文件作为返回内容。

composer构建

支持手动构建和发送HTTP, HTTPS和FTP请求, 我们还可以从web session列表中拖曳session, 把它放到composer选项卡中, 当我们点击Execute按钮, 把请求发送到服务器端

log日志

打印日志

Filters过滤

过滤器可以对左侧的数据流列表进行过滤, 我们可以标记、 修改或隐藏某些特征的数据流

Timeline时间轴

时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。 每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为 X 轴, 用图表的形式展现出来, 就形成了瀑布图。 在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),

Timeline 便会显示指定内容从服务端传输到客户端的时间

3.4 命令行工具

Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。

常见得命令有:

  • help : 打开官方的使用页面介绍, 所有的命令都会列出来

  • cls : 清屏 (Ctrl+x 也可以清屏)

  • select : 选择会话的命令, 选择所有相应类型select image、select css、select html

  • ?sometext : 查找字符串并高亮显示查找到的会话列表的条目,?qq.com

  • >size : 选择请求响应大小小于size字节的会话

  • =status/=method/@host:查找状态、方法、主机相对应的session会话,=504,=get,@www.qq.com

  • quit:退出fiddler

四、主要功能

4.1 过滤域名

Fiddler抓包可以完成调试,但是多余的网页请求和手机的其他链接影响效率。所以需要排除其他无用的包,只关注指定的域名的请求包。

  1. 实现了对所有的 www.baidu.com 和 https://www.baidu.com 的包的过滤。

  1. 进程过滤

  1. Request Headers过滤

4.2 修改接口数据

  1. 抓包,找到要拦截的请求,然后拖到AutoResponder中进行编辑,Add Rule

  1. 在Rule Editor中的第二栏点击下拉列表,选择“Create New Response...”

  1. 点击Save,会弹出一个窗口,在弹窗中选择Raw栏,将抓包抓到的请求对应的Raw栏内容复制粘贴进去,然后将其中想要修改的部分进行修改,然后点击“Save”进行保存

  1. 如果想要频繁修改替换返回体中某些内容,可以在AutoResponder里相应待拦截请求上点击右键,“Edit Response”编辑返回体

  2. 如果还想再方便一点,可以在AutoResponder里相应待拦截请求上点击右键,“Generate File”将response body保存到本地txt文件,然后打开txt文件修改保存即可生效。

但是注意,如果通过文件的方式保存response内容,可能会出现编码问题导致的客户端处理出错。最建议的方式,不会出错的方式,还是通过“Create New Response...”的方法。

4.3 构造请求

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

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

4.4 模拟弱网

打开fiddler,默认情况下Rules->Performance->Simulate Modem Speeds是未勾选状态,此时网络正常。当选中此选项后,就实现了模拟弱网效果。

自定义Modem Speeds ,需点开Rules → Customize Rules,找m_SimulateModem这个字,会找到下面这段:这就是他模拟网路速度的原理,每上传/下载1KB 要delay多久

五、常见问题

5.1 Response乱码

问题:有时候我们看到Response中的HTML是乱码的, 这是因为HTML被压缩了, 我们可以通过两种方法去解压缩。

步骤:

方法一:点击红框内容“Response body is encouded.Click to decode.”

方法二:选中工具栏中的"Decode"。 这样会自动解压缩。

5.2 浏览器无法上网

当启动fiddler后,会发现无论是chorme、firefox都无法访问https的网站,http还是可以访问的。这是因为fiddler默认只支持http不支持https的,需要给浏览器安装证书才可以支持。

  1. 打开Tools-Options-HTTPS选项卡;

  2. 点击"Actions"下拉选择“Trust Root Certificate”-弹框选择“yes”-弹框选择“yes”;

  3. 点击"Actions"下拉选择“Export Root Certificate to Desktop”,将fiddler证书导出到桌面;

  4. 打开谷歌浏览器,设置-高级-管理证书;

  5. 导入-下一步-浏览证书路径-下一步-下一步;

  6. 重启浏览与fiddler后查看在启动fiddler的情况下Chrome浏览器浏览网页。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我是如何用JSP在网络上架构一个网上招标系统,以推进网站无纸化,过程电子化,管理智能化的发展

声明:部分代码参考与网络,如有侵权请联系博主删除,博主本着学习的态度和大家一起成长。 项目github地址:https://github.com/sunmenglei/sunmengleiwangshangzhaobiao/ 背景:从本世纪初,互联网开始加速发展…

我是如何使用git把本地代码上传到github上的,值得借鉴

背景:最近开发了一套招标系统,我是如何用JSP在网络上架构一个网上招标系统,以推进网站无纸化,过程电子化,管理智能化的发展。 使用git进行上传。 首先自己得有git工具及github账号,自己没有的提前准备一下。…

期中总结

期中总结: 第一章 计算机系统漫游 1.1 Linux基础 1.Linux命令 command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数 选项(options)或参数(arguments) 选项是调整命令执…

Kali WPScan的使用(WordPress扫描工具)

一、WPScan简介 WordPress网站介绍 WordPress是全球流行的博客网站,全球有上百万人使用它来搭建博客。他使用PHP脚本和Mysql数据库来搭建网站。 Wordpress作为三大建站模板之一,在全世界范围内有大量的用户,这也导致白帽子都会去跟踪 WordPr…

【jquery系列|Jquery总结篇】包含各种实例,文末有彩蛋!

孙叫兽,前端全栈工程师,微信公众号:电商程序员,如果本文对你有帮助,记得收藏点赞+关注。 jQuery 是一个 JavaScript 库,极大地简化了 JavaScript 编程,很容易学习。(注:本文不演示效果) 简介:jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优…

文件包含之日志中毒(User-Agent)

目录 一、本地文件包含 二、日志中毒 获取反弹shell获得目标服务器的完全控制权 方法一: 方法二:/var/log/auth.log 一、本地文件包含 本地文件包含漏洞指的是包含本地的php文件,而通过PHP文件包含漏洞入侵网站,可以浏览同服务器所…

对象池回收对象_回收对象以提高性能

对象池回收对象总览 在上一篇文章中,我说过对象反序列化更快的原因是由于使用了回收对象。 由于两个原因,这可能令人惊讶:1)相信如今创建对象是如此之快,无关紧要或与回收自己一样快,2)默认情况…

昆仑镜Kunlun-M使用方法

文章目录 项目介绍和安装测试项目介绍根据Readme.md进行安装扫描测试 实战扫描扫描实战报错1报错2更新项目并重新扫描 扫描结果分析漏洞验证 项目介绍和安装测试 项目介绍 根据Readme.md进行安装 请使用python3.6运行该工具,已停止维护python2.7环境。 安装命…

Java EE中的RESTful计时器

在这篇文章中...。 EJB计时器旋风之旅 通过带有示例实现的简单REST接口即时使用EJB计时器 更新(2015年7月14日) 现在可以在OpenShift上使用该应用程序的前端 。 由于我是前端新手,因此我在其他来源的帮助下组装了此HTML5 AngularJS应用程…

如何查看node的版本及安装的位置?

好多粉丝说我的node版本不支持win7,我把安装包放到了主页QQ群群文件,CSDN资源也有上传。 那么如何查看电脑版本? 电脑快捷键winR,cmd进入黑窗口 node -v 如何查看node安装的位置? where node 如下图所示:

应用安全测试技术DAST、SAST、IAST对比分析

应用安全测试技术DAST、SAST、IAST对比分析-持续更新 版权来源:安全牛首发文章,本文仅补充完善。 一、全球面临软件安全危机 我们即将处于一个软件定义一切的时代,这是 “一个最好的时代,也是一个最坏的时代”。 无论是生活中离不…

android开发之shape详解

很多时候,使用shape能够实现的效果,你用一张图片也能够实现,但问题是一张图片无论你怎么压缩,它都不可能比一个xml文件小,因此,为了获得一个高性能的手机App,我们在开发中应该遵循这样一个原则&…

Fastjson系列漏洞实战和总结

前言 Fastjson是阿里巴巴的开源JSON解析库&#xff0c;它可以解析JSON格式的字符串&#xff0c;支持将Java Bean序列化为JSON字符串&#xff0c;也可以从JSON字符串反序列化到JavaBean。具有执行效率高的特点&#xff0c;应用范围广泛。 目录 Fastjson<1.2.24远程代码执行&a…

我是如何使用laydate日历插件更换掉老项目不好用的日历插件datepicker的

背景:最近整改了一个老项目系统,里面采用的是java+bootstrap+jsp写的,里面的日历插件datepicker特别不好用,容易点击失灵,我决定把它给替换了。 layDate 官网:https://www.layui.com/laydate/ My97DatePicker官网:http://www.my97.net/ 这里简单演示layDate的思路,不展…

Fastjson漏洞

Fastjson概述 Fastjson是阿里巴巴公司开源的一款json解析器&#xff0c;它可以解析 JSON 格式的字符串&#xff0c;支持将 Java Bean 序列化为 JSON 字符串&#xff0c;也可以从 JSON 字符串反序列化到JavaBean。 ➢历史漏洞 Fastjson <1.2.24 反序列化远程命令执行漏洞 Fa…

我是如何用Jquery实现网页缩小放大的

背景:一个比较老的后台系统,客户想操作父窗口的内容,同时查看子窗口,这就需要对页面进行缩小和放大,刚开始领导让我做一个假的隐藏然后缩放,经过测试此法不通,因为这个项目很庞大,框架较老,还有蒙版,使用隐藏hide()属性隐藏后,这个网页就不见了,在N个另一个页面加s…

什么是分配率?

诸如“不可持续的分配率”和“您需要保持较低的分配率”等短语似乎仅属于Java Champions的词汇表。 复杂&#xff0c;恐怖并被魔术光环包围。 经常发生的情况是&#xff0c;当您更仔细地查看概念时&#xff0c;魔术会随着抽烟消失。 这篇文章试图从提到的条款中删除魔术。 什…

流量分析----CTF题

文章目录 题目背景一、关卡列表二、解题1. 请分析流量&#xff0c;给出黑客使用的扫描器2. 请分析流量&#xff0c;得到黑客扫描到的登陆后台是(相对路径即可)3. 请分析流量&#xff0c;得到黑客使用了什么账号密码登陆了web后台(形式:username/password)4. 请分析流量&#x…

一文教你从零开始设计并实现一个Java扫雷游戏

背景&#xff1a;扫雷这款游戏有着很长的历史&#xff0c;从扫雷被开发出来到现在进行了无数次的优化&#xff0c;这款游戏变得越来越让人爱不释手了&#xff0c;简单的玩法在加上一个好看的游戏界面&#xff0c;每一处的细节都体现了扫雷的魅力。以JAVA语言作为开发环境&#…

C#循环语句(for循环)

循环语句 for(初始条件&#xff1b;循环条件&#xff1b;状态改变) { 循环体 &#xff1b;执行代码&#xff08;break跳出循环体&#xff09; } for(i1&#xff1b;i<100;i) 初始条件是i1;循环条件是i<100,即直到i在1-100之内进行循环&#xff0c;直到100结束循环&#x…