全⽹最全fiddler使⽤教程和fiddler如何抓包(fiddler⼿机抓
包)-笔者亲测
⽬录:导读
⼀、前⾔
抓包⼯具有很多,⽐如常⽤的抓包⼯具Httpwatch,通⽤的强⼤的抓包⼯具Wireshark.为什么使⽤fiddler?原因如下:
1.Wireshark是通⽤的抓包⼯具,但是⽐较庞⼤,对于只需要抓取http请求的应⽤来说,似乎有些⼤材⼩⽤。
2.Httpwatch也是⽐较常⽤的http抓包⼯具,但是只⽀持IE和firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,似乎稍显⽆⼒
⽽Fiddler是⼀个使⽤本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应⽤程序都可以使⽤ Fiddler。那么想要精通抓包,⾸先必须对协议⽐较了解,所以下⾯我们⾸先了解⼀下协议。
⼆、HTTP协议
1、HTTP协议
⽀持客户/服务器模式。简单快速,⽆连接,⽆状态。
HTTP协议:默认端⼝:80
HTTPS=HTTP协议+SSL安全传输协议:默认端⼝443
2、HTTP协议请求详解
请求⾏,请求头,空⼀⾏,请求正⽂
Accept 指定客户端能够接收的内容类型
Accept-Charset 浏览器可以接受的字符编码集。
Accept-Encoding 指定浏览器可以⽀持的web服务器返回内容压缩编码类型。
Accept-Language 浏览器可接受的语⾔
Cookie HTTP请求发送时,会把保存在该请求域名下的所有cookie值⼀起发送给web服务器。
Content-Length 请求的内容长度
Content-Type 请求的与实体对应的MIME信息
Date 请求发送的⽇期和时间
Host 指定请求的服务器的域名和端⼝号
Referer 先前⽹页的地址,当前请求⽹页紧随其后,即来路
User-Agent 发出请求的⽤户信息
3、HTTP协议响应详解
响应⾏,响应头,空⼀⾏,响应正⽂
响应头的信息和请求头很类似,这⾥不在累述!
三、Fiddler简介和⼯作原理
1.Fiddler简介
Fiddler是位于客户端和服务器端的HTTP代理。
⽬前最常⽤的http抓包⼯具之⼀。功能⾮常强⼤,是web调试的利器。
⼯作中常⽤场景:接⼝调试、接⼝测试、线上环境调试、判断前后端Bug、mock测试、弱⽹测试。
3.Fiddler的⼯作原理:
Fiddler是以代理web服务器的形式⼯作的,它使⽤代理地址:127.0.0.1,端⼝:8888。当Fiddler退出的时候它会⾃动注销,
关掉Fiddler、⾕歌和IE浏览器的代理服务器会⾃动取消。如果Fiddler⾮正常退出,因为Fiddler没有⾃动注销,会造成⽹页⽆法访问。解决的办法是重新启动Fiddler。
四、Fiddler六⼤块详解
(1) Fiddler回话列表
1.请求的ID编号、
2. http响应状态码、
3.会话使⽤的协议、
4.请求发送到的服务器主机名、
5.数据包在服务器中的路径和⽂件、
6.响应body的字节数。
7.响应头信息Cache-Control的值、
8、响应头信息Content-Type的值、
9.发起请求的本地windows进程、
10.注释、
11.⾃定义备注。
(2) Fiddler功能页签
Statistics页签:通过该页签,⽤户可以通过选择多个会话来得到这⼏个会话的总的信息统计,⽐如多个请求传输的字节数。访问页⾯时选择第⼀个请求和最后⼀个请求,可获得整个页⾯加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从⽽对页⾯的访问进⾏速度性能优化。
inspectors页签:它提供headers、textview、hexview,Raw等多种⽅式查看⼀条http请求的请求和响应,它分为上下两部分:上部分为请求展⽰,下部分为响应展⽰。
AutoResponse页签:它可以抓取在线页⾯保存到本地进⾏调试,⼤⼤减少了在线调试的困难,可以让我们修改服务器端返回的数据,例如让返回都是404的数据包读取本地⽂件作为返回内容。
composer页签:⽀持⼿动构建和发送HTTP,HTTPS和FTP请求,我们还可以从回话列表中拖曳回话,把它放到composer选项卡中,当我们点击Execute按钮时则把请求发送到服务器端。
FiddlerScripts页签:打开Fiddler脚本编辑。
log页签:打印⽇志
Filters页签:过滤器可以对左侧的数据流列表进⾏过滤,我们可以标记、修改或隐藏某些特征的数据流。
Timeline页签:时间轴,也称为Fiddler的瀑布图,展⽰⽹络请求时间的功能。每个⽹络请求都会经历域名解析、建⽴连接、发送请求、接受数据等阶段。把多个请求以时间作为X轴,⽤图表的形式展现出来,就形成了瀑布图。在左侧会话窗⼝点击⼀个或多个回话,Timeline 便会显⽰指定内容从服务端传输到客户端的时间。
(4)⼯具栏详解:
1.备注功能
2.重新发送请求,快捷键:R键。
3.删除请求
4.当有请求前断点时,点击去发送请求。
5.流模式。(默认是缓冲模式)
6.解码
7.保持回话的数量。
8.选择你想要抓包或者监听的程序
9.查
10.保存所有会话,⽂件名以.saz为扩展名
11.截图
12.计时器
13.快捷的打开IE浏览器
14.清除IE缓存
15.⽂本的编码解码⼯具
16.分离⾯板
17.MSDN查询
18.本机的信息
(5)状态栏详解:
1、显⽰的Fiddler是否处于捕捉状态(开启/关闭状态),可以点击该区域切换。
2、显⽰当前捕捉哪些进程。
All Processes 捕获所有进程的请求
Web Browsers 捕获 Web 浏览器的请求,应该特指 IE
Non-Browser 捕获⾮ Web 浏览器的请求
Hide All 隐藏所有请求
3、显⽰当前断点设置状态,通过⿏标点击切换。有三种:
不设置断点
所有请求在断点处被暂停
所有响应在断点处被暂停
4,显⽰当前共捕获了多少回话(如:300,表⽰共捕获了300个会话,如:10/300,表⽰当前选择10个会话,共捕获300个会话)。5,第五区块,描述当前状态。
如果是刚打开Fiddler,会显⽰什么时间加载了CustomRules.js;如果选择了⼀个会话,会显⽰该会话的URL;如果在命令⾏输⼊⼀个命令,就会显⽰命令相关信息。
(6)Fiddler命令⾏可以输⼊命令操作回话列表,常见命令有:
help 打开官⽅的使⽤页⾯介绍,所有的命令都会列出来。
cls 清屏 (Ctrl+x 也可以清屏)
select 选择所有相应类型的回话(如select image或select?css)。
sometext 查字符串并⾼亮显⽰查到的会话。
>size 选择请求响应⼤⼩⼩于size字节的会话。
=status/=method/@host 查状态、⽅法、主机相对应的会话
1uit 退出fiddler
bpafter?xxx 中断URL包含指定字符的全部回话响应
bps?xxx 中断HTTP响应状态为指定字符的全部回话响应。
bpv?xxx 中断指定请求⽅式的全部回话响应
bpm?xxx 中断指定请求⽅式的全部回话响应。等同于bpv?xxx
bpu?xxx: 与bpafter类似。
五、Fiddler过滤器
选择Filters页签,勾选use Filters使⽤过滤器。
Fiddler过滤指定域名
1.第⼆个下拉框[-No Host Filter-]选择[Show Only The Following Hosts]只显⽰过滤的域名。
2.如只监控百度,在下⾯的输⼊框⾥填上:www.baidu
Fiddler过滤指定路径
1.勾选 Request Headers 中的[show only if URL contains]。
2.勾选Request Headers中的【Show only if URL contains】输⼊正则:REGEX:(?insx).*\.?baidu/home.* 只显⽰路径为:baidu/Home 的数据包。
Fiddler过滤指定⽂件格式
1.勾选Request Headers中的【Hide if url contains】过滤项,
2.在后⾯输⼊:REGEX:(?insx)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav|js)(\?.*)?$
六、Fiddler 对于WEB项⽬的抓包和改包项⽬实战
打开Fidder会⾃动抓包,如果想要改包的话则在AutoResponder页签,如下图:
七、Fiddler弱⽹测试
Fiddler应⽤-弱⽹测试
1、Rules->Customize Rules打开Fiddle脚本编辑器(第⼆种也可以点击页签:FiddlerScript)。到如下代码:
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded. 上⾏每发送1KB延迟300ms
oSession["request-trickle-delay"] = "300";
// Delay receives by 150ms per KB downloaded. 下⾏每接收1KB延迟150ms
oSession["response-trickle-delay"] = "150";
}
1kByte/s=8kbit/s(⼀般简写为1kB/s=8kb/s)。
上传带宽=(1 * 8/1000) /0.300 ≈ 0.027Mbps
下载带宽=(1 * 8/1000) /0.150 ≈ 0.053Mbps
修改其中的300ms和150ms⽤于设置上⾏和下⾏的延迟速度。并重启Fiddler使设置⽣效。
⽐如你要模拟上传速度100KBps的⽹络,那上传延迟就是1KB/100KBps=0.01s=10ms,就改成10。
⽹络取值的算法就是 1000/速度 = 需要delay的时间(毫秒),⽐如50kb/s 需要delay200毫秒来接收数据。
⼋、Fiddler抓取https协议的数据报⽂和移动端抓包测试
1、Fiddler设置:菜单栏中选择tools->option,做如下两个设置:
2.Fiddler应⽤-抓取基于https协议的数据报⽂。
1、清理环境(⾸次安装Fiddler不需要清理)
(1)卸载Fiddler软件以及根证书⽣成器Fiddler2 CertMaker。
(2)清除C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA⽬录下所有的RSA算法⽂件,此算法⽂件和⾮对称公钥密钥加密相关。
(3)清除电脑上的根证书,WIN+R快捷键,输⼊: certmgr.msc, 然后回车,查fiddler证书,然后删除。
(4)清除浏览器上的证书⽂件 ,以⾕歌浏览器为例说明,在浏览器上输⼊:chrome://settings/,进⼊[⾼级]->[管理证书],有"受信任的根证书颁发机构"列表。此处需要仔细查带有DO_NOT_TRUST_FiddlerRoot的字样,并删除。
3.Fiddler应⽤-抓取基于https协议的⼿机报⽂。
1、Fiddler抓取⼿机端的https协议数据报⽂。
(1)保持android⼿机和电脑在同⼀⽹段。如连接同⼀⽆线。
(2)打开android⼿机的“设置”->“WLAN”,到你要连接的⽆线⽹络并点击,弹出⽹络设置对话框,在“代理”处选择“⼿动”,
软件测试app在“主机名”输⼊框后⾯输⼊127.0.0.1,在“端⼝”输⼊框后⾯输⼊8888,然后点击“保存”按钮。
(3)启动android设备中的浏览器访问百度⾸页或打开被测App,在fiddler中可以看到抓取到的数据报⽂了。
九、总结
如果你对此⽂有任何疑问,如果你也需要接⼝项⽬实战,如果你对软件测试、接⼝测试、⾃动化测试、⾯试经验交流感兴趣欢迎加⼊:软件测试技术:695458161,⾥的免费资料都是笔者⼗多年测试⽣涯的精华。还有同⾏⼤神⼀起交流技术哦。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论