使用Fiddler进行http抓包和调试
俗话说:工欲善其事,必先利其器。
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抓包和调试相关推荐
- Fiddler抓包远程调试篇
Fiddler抓包远程调试篇 由于部分同学没有mac电脑或者其他条件限制,不方便在ios手机上调试,或者在4.3版本的安卓手机以下在客户端大厅内不能debug,我们只能采用fiddler抓包进行远程调 ...
- 全网都在看的Fiddler、mitmproxy抓包秘籍,花钱都买不到
点击上方"蓝字",轻松关注我们 Fiddler.mitmproxy.Stream抓包工具原创集合 1.Fiddler抓取APP请求(环境搭建)之mama再也不用担心抓不到包了 2. ...
- 【看好了】如何使用fiddler实现手机抓包,Filters过滤器!
目录 一.Fiddler与其他抓包工具的区别 二.Fiddler的工作原理 三.使用fiddler实现手机抓包 四.Filters过滤器 一.Fiddler与其他抓包工具的区别 1.Firebug虽然 ...
- 使用 Fiddler Everywhere 进行抓包
使用 Fiddler Everywhere 进行抓包 开启各项必备功能 在打开浏览器之前需要先开启LiveTraffic为Capturing 然后点击像芯片一样的东西叫Decode (蓝色为开启状态) ...
- 使用whistle进行手机抓包并调试
whistle是一个基于Node实现的跨平台web调试代理工具,类似Windows上的Fiddler,Mac上的Charles,主要用于查看.修改HTTP.HTTPS.Websocket的请求.响应, ...
- fiddler教程:抓包带锁的怎么办?HTTPS抓包介绍。
点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 介绍Fiddler的HTTPS抓包功能." 这里首先回答下标题中的疑问,fiddler抓包带锁的原因是HTTPS流量抓包功能开启, ...
- Fiddler代理手机抓包
Fiddler代理手机抓包 0. 安装Fiddler 1. 安装HTTPS证书并允许远程连接 Tools - Options 点击OK后重启Fiddler. 确保手机与当前电脑在同一局域网. 然后在手 ...
- fiddler everywhere手机抓包_基于移动端抓包使用Fiddler模拟弱网测试
随着移动互联网的发展,移动端测试工作也提上日程,那移动互联网测试与web测试有什么不一样?首先它们架构不一样,再者基于的场景不一样,PC端网络基本固定宽带,而移动互联的网络测试一般分为:2G.3G.4 ...
- 通过Fiddler进行手机抓包
通过Fiddler进行手机抓包 通过Fiddler抓包工具,可以抓取手机的网络通信,但前提是手机和电脑处于同一局域网内(WI-FI或热点),然后进行以下设置: 用Fiddler对Android应用进行 ...
- fiddler证书 iphone_【详细】Mac使用Fiddler实现IPhone抓包(支持https)
[详细]Mac使用Fiddler实现IPhone抓包(支持https) > Windows 同理 1. 下载 安装 注册具体步骤不过多赘述 2. 打开Fiddler 设置界面,按照下图设置HTT ...
最新文章
- 搭建B2B2C多用户商城系统需要注意的事项
- android绘制心形_Android自定义View系列(一)——打造一个爱心进度条
- maven_SonarQube中的Maven项目的单元和集成测试报告
- ★自制社交网站等级称号
- 集客家客运维那些事_2011年集客家客代维考试题库V2
- ASPNET5的依赖注入
- 2000个流处理器?RV870消息首次透露
- 如何做一名合格的面试官
- 面试步步受挫,在打击中成长
- 删除ubuntu旧内核
- 《从零开始学Swift》学习笔记(Day 63)——Cocoa Touch设计模式及应用之单例模式...
- Docker入门之安装Tomcat
- Stata资源:一些不错的Stata-Blogs
- flash 独立播放器
- 2021-03-09
- 服务器的mdf文件怎么打开,在没SQL Server数据库情况下怎么打开.MDF文件?
- python中temp的用法_请问Python里temp是什么意思?
- 草图大师怎么取消组件关联_sketchup取消隐藏(草图大师里取消全部隐藏快捷键)...
- 《图像处理、分析与机器视觉 第四版》数学形态学基本概念——学习笔记
- java jsf_JSF简单入门
热门文章
- 分治法实现最大子数组
- html隐藏标签console,console的隐藏知识点,你get到了嘛?
- 字符串中拼接v-for_C#中几种拼接字符串的方法
- AR引擎vuforia源码分析、中文注释(2)用手势控制来与模型简单交互
- 能力提升综合题单 Part 8.3.3 最近公共祖先
- mysql多客户端数据不同步,一个关于客户端和数据库版本不一致的问题
- aode matlab程序,三大计算机视觉和机器学习库的算法汇总
- JAVA8内存最多设置多少,堆内存居高不下,JDK8自适应作怪
- java反射 泛型类型_【译】9. Java反射——泛型
- 诡异的问题“该字符串未被识别为有效的 DateTime”