Fiddler抓包工具详细教程
一 常用的抓包工具详细教程
抓包工具可以协助软件测试工作人员去定位问题,常用的抓包工具有5个
- 第一个
fiddler抓包工具,是客户端和服务端的http代理,客户端所有的请求都要先经过fiddler,到响应的服务端,然后服务端返回的所有数据也都要经过fiddler,fiddler也是最常用的抓包工具之一
- 第二个
Charles抓包工具也是比较常用的,和fiddler差不多,请求接口和返回数据的显示方式不一样,Charles是树状结构比较清晰,fiddler是按照时间倒叙排的
- 第三个
Firebug抓包工具是浏览器firefox浏览器自带插件,支持很多种浏览器,直接按f12,就可以打开,用起来比较方便
- 第四个
httpwatch抓包工具是强大的网页数据分析工具,安装简单,不需要设置代理和证书,但只能看不能修改,集成在Internet Explorer工具栏
- 第五个
Wireshark抓包工具很强大,可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。但是如果只是抓取http和https的话,还是用fiddler和Charles比较简洁一点
- 第六个
SmartSniff 抓包工具是一款方便小巧的 TCP/IP 数据包捕获软件,网络监视实用程序
二 Fiddler
2.1 简介
Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全
2.2 Fiddler抓取HTTP请求
2.2.1 HTTP代理
Fiddler是通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据。当然Fiddler很屌,在打开它的那一瞬间,它就已经设置好了浏览器的代理了。当你关闭的时候,它又帮你把代理还原了

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

Fiddler开始工作了,抓到的数据包就会显示在列表里面,下面总结都是什么意思




2.2.3 Inspectors 查看数据内容
Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容

2.3 Fiddler抓取HTTPS请求
Fiddler可以通过伪造CA证书来欺骗浏览器和服务器。大概原理就是在浏览器面前Fiddler伪装成一个HTTPS服务器,而在真正的HTTPS服务器面前Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的
解密HTTPS需要手动开启,依次点击:Tools –> Fiddler Options –> HTTPS

勾选Decrypt HTTPS Traffic

点击OK –> 是

2.4 Fiddler抓取APP的请求
想要Fiddler抓取移动端设备的数据包,移动设备怎么去访问网络,看下面这张图

可以看得出,移动端的数据包,都是要走wifi出去,所以我们可以把自己的电脑开启热点,将手机连上电脑,Fiddler开启代理后,让这些数据通过Fiddler,Fiddler就可以抓到这些包,然后发给路由器

-
打开Wifi热点,让手机连上
-
打开Fidder,点击菜单栏中的 [Tools] –> [Fiddler Options]

-
点击 [Connections] ,设置代理端口是8888, 勾选 Allow remote computers to connect,点击OK

-
这时在 Fiddler可以看到自己本机无线网卡的IP了,或者可以在cmd中ipconfig找到自己的网卡IP


-
在手机端连接PC的wifi,并且设置代理IP与端口(代理IP就是上图的IP,端口是Fiddler的代理端口8888)

-
访问网页输入代理IP和端口,下载Fiddler的证书,点击下图FiddlerRoot certificate

-
安装完了证书,可以用手机访问应用,就可以看到截取到的数据包了

2.5 Fiddler抓取APP上的HTTPS请求
2.5.1 安装证书抓取HTTPS请求
如果app都是http请求,是不需要安装证书,能直接抓到的,如果是https请求,这时候手机就需要下载证书了,打开手机浏览器输入:http://10.224.xx.xx:8888 ,这个中间的host地址就是前面查到的本机地址。
出现如下画面,点箭头所指的位置,点击安装就可以了

2.5.2 设置过滤
手机上设置代理后,这时候fiddler上抓到的是pc和app所有的请求,如果pc上打开网址,会很多,这时候就需要开启过滤功能了
打开fiddler>Tools>Fiddler Options>HTTPS>…from remote clients only,勾选这个选项就可以了
…from all processes :抓所有的请求
…from browsers only :只抓浏览器的请求
…from non-browsers only :只抓非浏览器的请求
…from remote clients only:只抓远程客户端请求

2.6 Fiddler内置命令与断点
2.6.1 内置命令
Fiddler还有一个命令框

内置命令含义如图


2.6.2 断点
1) 断点简介以及设置
比如一个购买的金额输入框,输入框前端做了限制100-1000,那么测试的时候,需要测试小于100的情况下。很显然前端只能输入大于100的。这是我们可以先抓到接口,修改请求参数,绕过前端,传一个小于100的数,检查服务端的功能是否OK
Fiddler可以修改以下请求
–Fiddler设置断点,可以修改HTTP请求头信息,如修改Cookie,User-Agent等
–可以修改请求数据,突破表单限制,提交任意数字,如充值最大100,可以修改成10000
–拦截响应数据,修改响应体,如修改服务端返回的页面数据
断点可以直接点击Fiddler下图的图标位置,就可以设置全部请求的断点

断点的命令可以精确设置需要截获那些请求

1) 断点的两种方式
before response:这个是打在request请求的时候,未到达服务器之前
after response:也就是服务器响应之后,在Fiddler将响应传回给客户端之前
1) 全局断点
全局断点就是中断fiddler捕获的所有请求,先设置下,点击rules-> automatic breakpoint ->before requests

选中before requests选项后,打开博客园首页:http://www.cnblogs.com/yoyoketang/,看到如下T的标识,说明断点成功

打完断点后,会发现所有的请求都无法发出去了,这时候,点下Go按钮,就能走下一步了

找到需要修改的请求后,选中该条会话,右侧打开WebFroms,这时候里面的参数都是可以修改的了

修改之后点Run to Completion就能提交了,于是就成功修改了请求参数了
打全局断点的话,是无法正常上网的,需要清除断点:rules-> automatic breakpoint ->disabled
2.7 如何找出需要的请求
打开fiddler后,左边会话框区域很多请求,那么如何找出自己需要的请求呢
首先第一步:清屏(cls),在左下角命令行输入cls,清空屏幕
(清屏也可以使用快捷键Ctrl+X)

第二步在浏览器输入url地址的时候,记住这个地址,如打开博客首页:http://www.cnblogs.com/yoyoketang/
在点击登录按钮的时候,不要做多余的操作了
本文详细介绍了Fiddler抓包工具的使用,包括HTTP和HTTPS请求的抓取,APP请求的捕获,以及HTTPS证书的配置。Fiddler通过HTTP代理功能监控网络流量,提供Inspectors查看数据内容,支持断点设置和内置命令,是测试和调试网络请求的强大工具。同时,文章还讲解了如何通过设置过滤规则和使用断点进行精确控制请求,以及如何在大量请求中快速定位所需信息。

2224

被折叠的 条评论
为什么被折叠?



