俗话说:工欲善其事,必先利其器。
Fiddler是windows下前后端开发的一大调试利器。

Fiddler工作于 ISO 七层中的应用层,对 http(s) 的报文抓取分析和调试非常给力,但是似乎不直接支持 tcp/udp 等其他协议报文的抓取。
windows上可以使用wireshare进行所有报文的抓取,但是它大而不专了,对 http(s) 这协议没有过多的可操作性。
linux上可以用tcpdump等命令工具。

本文主要写一下这个利器的主要使用方法。

1、 Fiddler的工作原理

其原理图如下:

上图中间的东西就是Fiddler软件,它作为计算机上的网络代理,所有的http(s)请求和响应都要通过它来传输,竟然它扼住网络的喉咙,有些事情就比较好办了。发挥你的想象力,它就可以截住请求、截住响应、修改请求内容、修改响应内容、报文内容截取分析、https证书替换和SSL加密解密。是的,这正是下面所有要讲的内容,都是依据这个原理展开的。

它是如何进行网络代理的呢?
在安装了Fiddler的系统中,启动Fiddler之后它会监听8888端口(默认8888,可以修改)。监听里边的数据流加以解析和修改。

在实践中,我尝试用它来抓取QQ客户端的报文,发现没法抓到,其实设置一下QQ的网络代理为浏览器代理即可。浏览器默认是启动监听了。

因为Fiddler的这些特性,所以用它来调试 ajax 、分析错误报文很是方便。

2、 Fiddler的常用操作

如何安装本文就不多说,windows的安装型软件无非就一直 Next 。
我这里使用 Fiddler4 版本,写博时官方的最新版本。
如果要从官网下载的话,应该要先注册才开放下载。
安装成功后按下图访问有:

表明你已安装成功啦。

下面打开 百度 搜索引擎首页,可以抓到几条请求,第一个就是html的内容请求,第二个是百度logo的请求......

Fiddler的常用分析操作集中在上图中,每一次的 http(s) 的请求和响应,都清晰的记录在列表中,双击可以查看报文内容,提供十多项解析功能对报文进行各种解析,非常直观方便。

3、 支持https解密分析

默认Fiddler是不支持解密 https 的报文内容的,能捕获到报文,但是报文加密了,打开就是一串乱码。如果你是本机测试的话,不妨用Fiddler的证书替换原有的SSL所需的证书。既然使用Fiddler自己的证书,那相当于它自己也那里一把钥匙,随时可以解密报文,看到报文内容。这对于调试来说特别方便。

按如下配置使能https的解析,
选择 Tools -> Telerik Fiddler Options ,设置如下:

再刷新网页可以看到解析出 form 表单的内容了:

最新版的firefox浏览器对证书验证比较严格(360,谷歌,IE 没出现),前面我替换了证书,估计导致了一些问题,发出如下的警告:

如果你只是测试的话,就点击网页中的 添加例外 按钮,信任一下这个证书,又可以快乐的访问和测试了。

4、 Fiddler的断点调试

Fiddler的断点有两种:请求前断点(Before Request) 和 响应后断点(After Response)。

顾名思义,Fiddler截获到请求暂停、截获到响应暂停。
为什么要暂停呢?就是为了修改请求或响应的报文呀。

开启两种断点的方式如下:

下面演示一下开启请求前断点的例子:

开启断点后,刷新一下百度首页(因为百度网页协议 https 的,若要修改内容的话,就要开启https解密功能),有:

注意到会话的图标是红色的(左上角),因为会话被请求前断点给暂停了,所以出现了类似于程序的断点标识。

切换到 RAW 的tab查看原始数据(如上),把里边的 User-Agent 的值修改为 iPhone 的web标识,如:

Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4

再点击(选中)刚才暂停的会话,接着按住 Shift 键(或者干脆把断点给关了,不然后面还要点击若干次 GO),点击工具栏的 GO ,Fiddler就会把修改后的请求发给百度的服务器,所以你可以看到下面的响应结果:

这是一个手机端的web页面,是的,我们成功篡改了报文内容并达到目的。

转载于:https://blog.51cto.com/12942149/1932764

使用Fiddler进行http抓包和调试相关推荐

  1. Fiddler抓包远程调试篇

    Fiddler抓包远程调试篇 由于部分同学没有mac电脑或者其他条件限制,不方便在ios手机上调试,或者在4.3版本的安卓手机以下在客户端大厅内不能debug,我们只能采用fiddler抓包进行远程调 ...

  2. 全网都在看的Fiddler、mitmproxy抓包秘籍,花钱都买不到

    点击上方"蓝字",轻松关注我们 Fiddler.mitmproxy.Stream抓包工具原创集合 1.Fiddler抓取APP请求(环境搭建)之mama再也不用担心抓不到包了 2. ...

  3. 【看好了】如何使用fiddler实现手机抓包,Filters过滤器!

    目录 一.Fiddler与其他抓包工具的区别 二.Fiddler的工作原理 三.使用fiddler实现手机抓包 四.Filters过滤器 一.Fiddler与其他抓包工具的区别 1.Firebug虽然 ...

  4. 使用 Fiddler Everywhere 进行抓包

    使用 Fiddler Everywhere 进行抓包 开启各项必备功能 在打开浏览器之前需要先开启LiveTraffic为Capturing 然后点击像芯片一样的东西叫Decode (蓝色为开启状态) ...

  5. 使用whistle进行手机抓包并调试

    whistle是一个基于Node实现的跨平台web调试代理工具,类似Windows上的Fiddler,Mac上的Charles,主要用于查看.修改HTTP.HTTPS.Websocket的请求.响应, ...

  6. fiddler教程:抓包带锁的怎么办?HTTPS抓包介绍。

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 介绍Fiddler的HTTPS抓包功能." 这里首先回答下标题中的疑问,fiddler抓包带锁的原因是HTTPS流量抓包功能开启, ...

  7. Fiddler代理手机抓包

    Fiddler代理手机抓包 0. 安装Fiddler 1. 安装HTTPS证书并允许远程连接 Tools - Options 点击OK后重启Fiddler. 确保手机与当前电脑在同一局域网. 然后在手 ...

  8. fiddler everywhere手机抓包_基于移动端抓包使用Fiddler模拟弱网测试

    随着移动互联网的发展,移动端测试工作也提上日程,那移动互联网测试与web测试有什么不一样?首先它们架构不一样,再者基于的场景不一样,PC端网络基本固定宽带,而移动互联的网络测试一般分为:2G.3G.4 ...

  9. 通过Fiddler进行手机抓包

    通过Fiddler进行手机抓包 通过Fiddler抓包工具,可以抓取手机的网络通信,但前提是手机和电脑处于同一局域网内(WI-FI或热点),然后进行以下设置: 用Fiddler对Android应用进行 ...

  10. fiddler证书 iphone_【详细】Mac使用Fiddler实现IPhone抓包(支持https)

    [详细]Mac使用Fiddler实现IPhone抓包(支持https) > Windows 同理 1. 下载 安装 注册具体步骤不过多赘述 2. 打开Fiddler 设置界面,按照下图设置HTT ...

最新文章

  1. 搭建B2B2C多用户商城系统需要注意的事项
  2. android绘制心形_Android自定义View系列(一)——打造一个爱心进度条
  3. maven_SonarQube中的Maven项目的单元和集成测试报告
  4. ★自制社交网站等级称号
  5. 集客家客运维那些事_2011年集客家客代维考试题库V2
  6. ASPNET5的依赖注入
  7. 2000个流处理器?RV870消息首次透露
  8. 如何做一名合格的面试官
  9. 面试步步受挫,在打击中成长
  10. 删除ubuntu旧内核
  11. 《从零开始学Swift》学习笔记(Day 63)——Cocoa Touch设计模式及应用之单例模式...
  12. Docker入门之安装Tomcat
  13. Stata资源:一些不错的Stata-Blogs
  14. flash 独立播放器
  15. 2021-03-09
  16. 服务器的mdf文件怎么打开,在没SQL Server数据库情况下怎么打开.MDF文件?
  17. python中temp的用法_请问Python里temp是什么意思?
  18. 草图大师怎么取消组件关联_sketchup取消隐藏(草图大师里取消全部隐藏快捷键)...
  19. 《图像处理、分析与机器视觉 第四版》数学形态学基本概念——学习笔记
  20. java jsf_JSF简单入门

热门文章

  1. 分治法实现最大子数组
  2. html隐藏标签console,console的隐藏知识点,你get到了嘛?
  3. 字符串中拼接v-for_C#中几种拼接字符串的方法
  4. AR引擎vuforia源码分析、中文注释(2)用手势控制来与模型简单交互
  5. 能力提升综合题单 Part 8.3.3 最近公共祖先
  6. mysql多客户端数据不同步,一个关于客户端和数据库版本不一致的问题
  7. aode matlab程序,三大计算机视觉和机器学习库的算法汇总
  8. JAVA8内存最多设置多少,堆内存居高不下,JDK8自适应作怪
  9. java反射 泛型类型_【译】9. Java反射——泛型
  10. 诡异的问题“该字符串未被识别为有效的 DateTime”