本来想自己写的,结果翻到一系列的博客,发现有前辈总结的太好了,转载过来,当知识点查询一下。外加自己总结的一些经验,我总结的放在了最后面。
原地址:https://www.cnblogs.com/sjl179947253/p/7620524.html
目录
教程1 介绍及界面概述
一、 主要抓包工具介绍与对比
二、 Fiddler界面概述
1. 主菜单
2、快捷菜单
3、 会话列表
4、会话右键
5、选项卡
6、请求查看器
7、响应查看器
教程2 捕获设置
1、Fiddler抓web网站请求
2、Fiddler抓APP请求
2.1、常用设置
2.2、附加设置(常用设置后无法进行抓包)
教程3 设置断点修改
1、 断点修改Request
1.1、Request全部中断
1.2、Request特定网站中断
2、断点修改Response
2.1、Response全部中断
2.2、Response特定网站中断
2.3、Response查找或替换
3、其他断点相关命令行
教程4 重定向AutoResponder
1. 文件及图片替换(Enable rules)
2. 未匹配到请求时正常响应(Unmatched requests passthrough)
3、设置延时(Enable Latency)
4、URL匹配
5、Test是否匹配
教程5 Fiddler过滤
1、User Fiters启用
2、Action
3、Hosts过滤
4、Client Process过滤
5、Request Headers过滤
6、Breakpoints
7、Response Status Code过滤
8、Response Type and Size
9、Response Headers
10、会话列表:鼠标右击
教程6 Fiddler Script
1、安装SyntaxView插件
2、进入FiddlerScript页面
3、FiddlerScript脚本进行自定义修改
4、模拟慢速网络
教程7 次要功能和第三方插件
1、替换HTTP Request Host
2、配置Host
3、Compose-Request发射器
4、HTTP统计图
5、QuickExec命令行的使用
6、TimeLine瀑布图
7、编码小工具、查询会话、编码解码
8、第三方插件
9、官方文档
1、Wireshark :通用抓包工具,抓取信息量庞大,需要过滤才能得到有用信息,只抓HTTP请求有点大财小用。
2、Firebug、HttpWatch等Web调试工具,不够给力,功能欠缺。
3、Charles:建议MAC上使用。
4、Fiddler:是一个HTTP协议调试代理工具;
①、是位于客户端和服务器的HTTP代理,它能记录所有客户端和服务器的HTTP和HTTPS请求响应,进行截获、重发、编辑、转存等操作;
②、允许监视、设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展。
File文件: File--->Capture Traffic启用或停止捕获; File--->New Viewer 新窗口; File--->Load Archive 存档; File--->Recent Archive 最近文档; File--->Save保存; Save--->All Session... 全部会话; Save--->Selected Session 选择了的会话; Save--->Request 请求; Save--->Response 响应; File--->Import Sessions导入会话; File--->Export Sessions导出会话; File--->Exit退出; |
|
Edit编辑: Edit--->Copy拷贝; Copy--->Session拷贝整个Session; Copy--->Just Url将选中session的url拷贝到剪贴板; Copy--->Headers Only拷贝头信息,包括请求和返回的头信息; Copy--->Full Summary将session列表显示的信息及表头复制到剪贴板,通过tab分割。便于在Excel或其他编辑器中查看编辑; Edit--->Remove移除; Remove--->Selected Sessions选择会话; Remove--->Unselected Sessions反选会话; Remove--->All Sessions全部会话; Edit--->Select All选择全部; Edit--->Undelete恢复之前删除的会话; Edit--->Paste as Sessions作为会话粘贴文件; Edit--->Mark标记所选的会话; Mark--->Strikeout失败; Mark--->Red红色; Mark--->Blue蓝色; Mark--->Gold金色; Mark--->Green绿色; Mark--->Orange橙色; Mark--->Purple紫色; Mark--->Unmark未标记; Edit--->Unlock for Editing调为可编辑 Edit--->Find Sessions查找会话 |
|
|
Rules规则: Rules--->Hide Image Requests隐藏图片请求; Rules--->Hide HTTPS CONNECTs隐藏HTTPS连接; Rules--->Automatic Breakpoints断点控制; Automatic Breakpoints--->Before Requests请求之前; Automatic Breakpoints--->After Responses 响应之后; Automatic Breakpoints--->Disabled禁用; Automatic Breakpoints--->Ignore Images忽略图片; Rules--->Customize Rules打开Fiddler ScriptEditor; Rules--->Require Proxy Authentication密码代理验证; Rules--->Apply GZIP Encoding采用GZIP编码; Rules--->Remove All Encodings删除全部编码; Rules--->Hide 304s隐藏304会话; Rules--->Request Japanese Content要求日语内容; Rules--->User-Agents支持把User-Agents请求头设置或替换成指定值; Rules--->Performance提供影响web性能的简单选项; Performance--->Simulate Modem speeds模拟调制解调器速度; Performance--->Disable Caching禁止缓存 Performance--->Cache Always Fresh新的缓存 |
Tools工具: Tools--->Options选项; Tools--->WinINET Options WinINET选项; Tools--->Clear WinINET Cache-清除WinINET缓存; Tools--->Clear WinINET Cookies清除WinINET的Cookies; Tools--->TextWizard文字编码解码; Tools--->Compare Sessions比较会话; Tools--->New Session Clipboard新会话写字板; Tools--->HOSTS hosts配置; Tools--->Reset Script重置脚本; Tools--->Sandbox沙箱; Tools--->View IE Cache查看IE缓存; |
|
View视图: View--->Show Toolbar显示工具条 View--->Default Layout默认布局 View--->Stacked Layout堆叠布局 View--->Wide Layout全部布局 View--->Tabs制表符 Tabs--->preferences偏好 Tabs--->autosave自动保存 Tabs--->apitest API测试 View--->Statistics统计 View--->Inspectors嗅探 View--->Composer构造 View--->Minimize to Tray关闭自托盘 View--->Stay on Top前端显示 View--->Squish Session List会话列表格式 View--->AutoScroll Session List自动滚动会话链表 View--->Refresh刷新 |
|
Help帮助: Help--->Help帮助 Help--->Fiddler Book说明 Help--->Discussions社区讨论 Help--->HTTP References HTTP的参考 Help--->Troubleshoot Filters-故障排除 Help--->Check For Updates检测更新 Help--->Send Feedback发送反馈 Help--->Abou关于 |
|
会话列表进行备注 Replay--->重新发送选中请求 Remove--->删除会话 Go--->打断点时使用 Stream--->点击为流模式,不点击为缓冲模式 缓冲模式:内容全部返回在发送到客户端;可以控制响应,修改响应数据,但是时序图有时候会出现异常; 流模式:收到内容立即发送给客户端;更接近真实浏览器的性能,速度快,时序图更准确(比如瀑布图),但是不能控制响应; 如果不需要AutoResponse和Fileters功能的话,一般使用缓冲模式; Decode--->解码,默认勾选 |
|
Keep:All sessions--->保持全部会话 Any Process--->任何进程,精准定位 Find--->查找 Save--->保存 |
截屏 秒表 Browse--->打开浏览器 Clear Cache--->清除缓存 TextWizard--->编码解码小工具 |
|
Tearoff--->打开一个新窗口 MSDN Search--->MSDN关键字查找 |
|
#--->图标及序号 Result--->HTTP响应状态码 Protocol--->请求使用的协议 Host--->接受请求的服务器主机名和端口号 URL--->请求的服务器路径的文件名,也包括GET参数 Body--->请求的大小,以byte为单位 Caching--->请求的缓存过期时间或缓存控制header等值;响应头中Expires和Cache-Control字段的值 |
|
Content-Type--->请求响应的类型 Process--->发出此请求的Windows进程及进程ID; Comment--->注释信息; Custom--->用户可以通过脚本设置自定义值;FiddlerScript所设置的ui-CustomColumn标志位的值 |
--->正在向服务器发送请求 -->正在从服务器下载响应 --->请求停止于断点处,允许对它进行修改 --->响应停止于断点处,允许对它进行修改 --->请求使用HTTP HEAD方法,响应没有body --->请求使用POST方法向服务器发送数据 --->请求使用了HTTPCONNECT方法,使用HTTPS协议建立连接通道 --->响应是HTML内容 --->响应是图片 --->响应是脚本文件 --->响应是CSS文件 --->响应是XML --->响应是JSON --->响应是音频文件 --->响应是视频文件 --->响应是Silverlight程序 --->响应是Flash应用程序 --->响应是字体文件 --->通用响应成功 --->响应是HTTP/300,301,302,303,307重定向 --->响应是HTTP/304,使用缓存文件 --->响应需要一个客户端凭证 --->响应是一个Sever错误 --->会话被客户端或fiddler或Sever终止 HTTP状态: 红色表示错误,黄色表示认证 数据流类型: 灰色表示CONNECT 响应类型:紫色表示CSS,蓝色表示HTML,绿色表示script,灰色表示图像 |
|
Statidtics--->对选中多个Sessions统计; Inspectors--->请求头和响应体 AutoResponder--->重新定向 Composer--->模拟进行发送 FiddlerScript--->脚本 Log--->日志 Fiters--->过滤 Timeline--->瀑布流时间图 |
|
Headers--->请求头信息显示为一个分级视图,包含了web客户端信息、Cookie、传输状态等; TextView--->显示POST请求的body部分为文本; SyntaxView--->显示脚本(安装SyntaxView插件) WebForms--->以直观的界面显示QueryString的值和Body的值,这里的Body应该是application/x-www-form-urlen-coded格式; HexView--->请求内容的16进制显示; Auth--->显示hearer中Proxy-Authorization和Authoriization信息; Cookies--->以直观的界面显示Header中Cookie的值; Raw--->将整个请求显示为纯文本; JSON--->通过JOSN格式显示; XML--->如果请求的body是XML格式,就是用分级的XML树来显示它; |
|
Transformer--->响应信息的压缩编码格式; Headers--->用分级视图显示响应的header; TextView--->使用文本显示相应的body; SyntaxView--->显示脚本(安装SyntaxView插件) ImageView--->响应内容如果是图片则显示图片,左侧灰色区域会显示图片的大小、宽高、文件格式等信息,在下方还可以选择缩放模式:自动缩放、缩放以适应显示区域大小、无缩放; HexView--->响应内容的16进制显示; WebView--->; Auth--->显示hearer中Proxy-Authorization和Authoriization信息; Caching--->缓存; Cookies--->以直观的界面显示Header中Cookie的值; Raw--->将整个响应显示为纯文本; JSON--->通过JOSN格式显示; XML--->如果响应的body是XML格式,就是用分级的XML树来显示它; |
手动设置方法一:Tools--->WinINET Options--->连接--->局域网设置--->代理服务器勾选后“高级”--->服务器地址:127.0.0.1,端口8888;
手动设置方法二:①、File--->勾选Capture Traffic;
②、点击左下角Capturing进行选择或取消;
自动设置步骤:Tools---> Options--->Connections--->勾选Act as system proxy on startup(作为系统启动代理)
设置步骤一:Tools---> Options--->HTTPS--->勾选Decrypt HTTPS traffic--->选择…from remote clients only(从远程客户端)
设置步骤二:Tools---> Options--->Connections--->设置Fiddler listens on port:8888--->勾选Allow remote computers to connect(允许远程设备连接)
设置步骤三:①.查看fiddler所在计算机的IP(cmd---> ipconfig或者点击fiddler右上角Online)
②.手机上进行设置:同一个wifi下设置代理,服务器地址:计算机的IP(192.168.0.163),端口8888;
方法一:因为有些APP对安全上要求没有那么高时候,不需要下载证书,但是有的APP对安全要求比较高,就需要下载证书,下载证书步骤:在手机浏览器输入网址:http://[FIDDLERSERVER]:[Port]/FiddlerRoot.cer或者[FIDDLERSERVER]:[Port],例如:http://192.168.0.163:8888/FiddlerRoot.cer或者192.168.0.163:8888
安装的证书在手机的位置如下,可以进行删除、重新安装;
方法二:Rules---> Customize Rules--->按Ctrl+F--->打开Find and Replace--->输入查询关键字:OnBeforeResponse--->在函数OnBeforeResponse中添加如下代码
if (oSession.oRequest["User-Agent"].indexOf("iPhone/9.2.1")> -1 && oSession.HTTPMethodIs("CONNECT")){oSession.oResponse.headers["Connection"] = "Keep-Alive";}
设置中断:Rules---> Automatic Breakpoints--->Before Requests
取消中断:Rules---> Automatic Breakpoints--->Disabled
点击下发红色箭头的位置进行中断切换;
例1:打开http://news.baidu.com/--->设置请求断点--->清空fillder抓包数据--->不输入任何关键字,点击http://news.baidu.com/页面中“百度一下”--->在fiddler中设置“value=巧吧软件测试”--->点击“Run to Completion” --->点击“Go” --->结果:“value=巧吧软件测试”;
Inspectors界面:Break on Response:发送请求,在响应数据回到Fiddler时再次中断;Run to Completion:单条运行修改后的请求;
特定网站中断设置:快速命令行输入“bpu www.baidu.com+Enter”,只会中断www.baidu.com;
特定网站中断取消:快速命令行输入“bpu+Enter”;
设置中断:Rules---> Automatic Breakpoints--->After Response
取消中断:Rules---> Automatic Breakpoints--->Disabled
点击下发红色箭头的位置进行中断切换;
例1_脚本替换:打开http://news.baidu.com/--->设置请求断点--->清空fillder抓包数据--->刷新http://news.baidu.com/页面--->在Response中修改内容--->点击“Run to Completion” --->点击“Go” --->结果:修改后的内容;
例2_状态码替换:打开http://news.baidu.com/--->设置请求断点--->清空fillder抓包数据--->刷新http://news.baidu.com/页面--->在Response中选择状态码--->选择502_Unreachable.dat --->点击“Run to Completion”--->点击“Go” --->结果:状态码502内容;
特定网站中断设置:快速命令行输入“bpafter www.baidu.com+Enter”,只会中断www.baidu.com;
特定网站中断取消:快速命令行输入“bpafter+Enter”;
bps:特定http状态码时中断,比如:bps 200;
bpv/bpm:在特定请求method时中断,比如bpv GET或bpm POST;
g:等于Go
目的:允许从本地返回文件,代替服务器响应,而不用将文件发布到服务器【可用正式环境验证本地文件】
步骤一:抓页面http://ir.baidu.com/phoenix.zhtml?c=188488&p=irol-irhome --->选择session,右击--->Save--->Response--->Entire Response
步骤二:打开另存html文件--->修改内容
步骤三:AutoResponder--->勾选Enable rules--->选择session--->点击“Add Rule”
步骤四:Rule Editor--->第二个下拉框--->选择Find a file… --->选择修改后的html--->save;
步骤四:Rule Editor--->第二个下拉框--->选择状态码--->save;
步骤五:清空fillder抓包数据--->刷新http://ir.baidu.com/phoenix.zhtml?c=188488&p=irol-irhome --->页面--->查看结果;
不勾选Unmatched requests passthrough时地址错误;
勾选Unmatched requests passthrough时地址错误不匹配;
步骤:勾选Unmatched requests passthrough--->选中文件--->修改文件地址--->Save--->重新刷新http://ir.baidu.com/phoenix.zhtml?c=188488&p=irol-irhome页面
步骤:勾选Enable Latency --->出现Latency列--->选中某个文件--->右击--->选择Set Latency--->设置延迟时间(3000毫秒)--->save--->重新刷新http://ir.baidu.com/phoenix.zhtml?c=188488&p=irol-irhome页面,设置的内容会发生3s的延迟;
EXACT开头:表示完全匹配
regex开头:表示用正则表达式来匹配
StringToMatch:字符串匹配
步骤:选中session--->点击Test--->查看是否匹配上;
Action:Run Filterset now是否运行,Load Filterset加载,Save Filterset保存;
Zone:指定只显示内网(Intranet)或互联网(Internet)的内容;
Host:指定显示某个域名下的会话;
-No Host Filter:无HOST过滤;
Hide the following Hosts:只显示如下HOST;
Flag the following Hosts:加粗显示如下HOST;
输入多个HOST,多个之前用半角逗号或者回车分隔;
支持通配符:*,baidu.com;
步骤:选择Hosts--->输入过滤条件单条件(ir.baidu.com)或多条件(ir.baidu.com,www.baidu.com或ir.baidu.com+Enter+www.baidu.com)或通配符(*.baidu.com)--->Changes not yet saved--->选择Ations中Run Filterset now;
客户端进程过滤规则:
Show only traffic from:你可以指定只捕获哪个Windows进程中的请求;
Show only Internet Explorer traffic:只显示IE发出的请求;
Hide Windows RSS platform traffic:隐藏Windows RSS平台发出的请求;
请求header过滤规则:
经常使用:Show only if URL contains;
Flag requests with headers:标记带有特定header的请求;
Delete request headers:删除请求header;
Set request header设置请求的header;
断点设置规则:
Break request on HTTP POST:给所有POST请求设置断点;
Break request on HTTP GET with QueryString:给所有带参数的GET请求设置断点;
Break response on Content-Type:给特定的Content-Type设定断点;
响应HTTP状态过滤规则:
Hide success(202,204,206):隐藏响应成功的session(202,204,206);
Hide Authentication demands(401):隐藏未经授权被拒绝的session(401);
Hide redirects(300,301,302,303,307):隐藏重定向的session(300,301,302,303,307);
Hide Not Modified(304):隐藏无变更的session(304);
响应类型和大小过滤规则:
Show all Content-Type:显示所有响应类型;
Hide smaller than ?KB:隐藏小于指定大小的session;
Hide larger than ?KB:隐藏大于指定大小的session;
Time HeatMap:获得即时数据(绿色阴影代表响应时间在50毫秒以内;超过50毫秒但在300毫秒之内的响应条目没有颜色;响应时间在300至500毫秒之间的会涂以黄色;超过500毫秒的用红色底纹显示);
Block script files:阻止脚本文件,显示为404;
Block image files:阻止图片文件;
Block SWF files:阻止SWF文件;
Block CSS files:阻止CSS文件;
响应header过滤规则:
Flag response that set cookies:标记会设置cookie的响应;
Flag response with headers:标记带有特定header的响应;
Delete response headers:删除响应header;
Set response header:设置响应的header;
使用Fiddler Script前需要安装SyntaxView插件:
方式1:Inspectors tab--->Get SyntaxView tab--->Download and Install SytaxView Now…
方式2:http://getfiddler.com/FiddlerSyntaxSetup.exe
方式1:直接点击FiddlerScript页签;
方式2:Rules--->Customize Rules--->Fiddler ScriptEditor;
修改session样式;
修改http请求和应答;
修改URL;
定制菜单:定制rule菜单的子菜单;定制tool菜单的子菜单;定制右键子菜单;
步骤一:Customize Rule修改脚本:上传/下载1KB要delay多久
步骤二:Rules--->Performance--->启用Simulate Modem Speeds
步骤二:重新刷新抓包网页--->结果很慢;
应用场景:进行开发时,线上去测试跳转调试
替换命令:urlreplace news.baidu.com www.baidu.com;
清除命令:urlreplace,需要同时清除浏览器缓存;
永久替代:Script脚本实现
应用场景:线下和线上进行域名ip地址进行替换;
步骤:Tools--->HOSTS--->Host Remapp
cls
select:select image
?.png
bpu、bpafter、bps、bpv、bpm
>size =status:=状态码 @host:匹配域名 选择多个会话,从条形图表中可以分别出哪些请求耗时最多; 不同颜色代表不同的元素类型的响应(浅绿色代表图片,深绿色是JavaScript,红色是CSS,其他为蓝色); 其他符号:请求前面的红色圆圈表示这个连接是新建的,绿色表示是复用的; 黑色竖线,表示的是浏览器收到服务器响应的第一个字节这一时刻; 向下的箭头表示重定向,302错误; 红色感叹号表示有错误发生,状态为4XX或5XX; 红色的X,说明服务端响应完这个请求之后,断开了连接; 闪电表示这是Fiddler的“AutoResponder”的响应; 软盘图标表示这个响应正文从本地获得,304错误; Syntax-Highlighring:代码高亮插件; JavaScript格式化插件:JS格式化; WinDiff:会话比较功能; Stave插件:目录替换;项目配置管理;自定义颜色;上下行网速限制; Willow:可以统计数据包;修改Host;请求重定向;编码转换;低网速模拟:慢速网络模拟可视化;断点调试;过滤HTTP请求; http://www.telefik.com/fiddler6、TimeLine瀑布图
7、编码小工具、查询会话、编码解码
8、第三方插件
9、官方文档