教程一, Fiddler界面(介绍)概述

一、 主要抓包工具介绍与对比

从事IT行业的我们,认识到的抓包工具各种各样,每个人的喜好都会有所不同;再或者说不同场景会应用到不同的抓包工具,以下便是笔者所 认知/常见 的抓包工具类型价绍:

注:本文只是将这个工具做详细介绍,挖掘隐藏的一些手法,大神请直接跳过,如何发挥最大程度使用后续还会更新,如有更好的想法期待与您交流,谢谢!

1、Wireshark :通用抓包工具,抓取信息量庞大,需要过滤才能得到有用信息,只抓HTTP请求就有点而大材小用了。

2、Firebug、HttpWatch等Web调试工具,插件 不够给力,功能欠缺。适用于配合功能测试/单接口测试使用;

3、Charles:这是唯一对标Fiddle的工具,在测试行业中多数人喜欢称它为 “花瓶”  其实我也不知道是不是因为它名字还是,它的图标所致,至少笔者 在win系统上操作时有些快捷键使用不太方便,建议MAC上使用。当然这也是笔者的个人使用感受的片面之词;如有大神还望指正。大家互相交流学习,谢谢!

4、Badboy:这个工具也是蛮强大的,但是目前好像越来越少的人在用了,不但可以录制脚本 还可以将录制bai并导出成dujmeter脚本zhi。然后导到一些性能工具里头用,但是没有一定代码能力的不建议试用,毕竟不是所有老的工具都是好用的,也不是所有新工具都是完美的;

缺点: 有时录制很慢,特别是当有弹出框时,并且Badboy转化为jmeter脚本时,会有遗漏,或转化错dao误;笔者使用时发现这东西,好像会比较吃内存的,不知道是不是错觉;因为当时是在win-10的系统上操作的;

5、Fiddler:是一个HTTP协议调试代理工具;

①、是位于客户端和服务器的HTTP代理,它能记录所有客户端和服务器的HTTP和HTTPS请求响应,进行截获、重发、编辑、转存等操作;

②、允许监视、设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展。

二、 Fiddler界面概述


主页面概括

1. 主菜单


对应上图介绍;

①File文件:

File--->Capture Traffic启用或停止捕获;File--->New Viewer 新窗口;File--->Load Archive 存档;File--->Recent Archive 最近文档;File--->Save保存;File--->Import Sessions导入会话;File--->Export Sessions导出会话;File--->Exit退出;
Save--->All Session... 全部会话;Save--->Selected Session 选择了的会话;Save--->Request 请求;Save--->Response 响应;


②Edit编辑:


Edit--->Copy拷贝;Edit--->Remove移除;Edit--->Select All选择全部;Edit--->Undelete恢复之前删除的会话;Edit--->Paste as  Sessions作为会话粘贴文件;Edit--->Mark标记所选的会话;Edit--->Find Sessions查找会话;Edit--->Unlock for  Editing调为可编辑
Copy--->Session拷贝整个Session;Copy--->Just Url将选中session的url拷贝到剪贴板;Copy--->Headers Only拷贝头信息,包括请求和返回的头信息;Copy--->Full Summary将session列表显示的信息及表头复制到剪贴板,通过tab分割。便于在Excel或其他编辑器中查看编辑;
Remove--->Selected  Sessions选择会话;Remove--->Unselected  Sessions反选会话; Remove--->All Sessions全部会话;


Mark--->Strikeout失败;Mark--->Red红色;Mark--->Blue蓝色;Mark--->Gold金色;Mark--->Green绿色;Mark--->Orange橙色;Mark--->Purple紫色;Mark--->Unmark未标记;

③Rules规则:


Rules--->Hide ImageRequests隐藏图片请求;Rules--->Hide HTTPSCONNECTs隐藏HTTPS连接;Rules--->Automatic Breakpoints断点控制;Rules--->Customize Rules打开FiddlerScriptEditor;Rules--->Require ProxyAuthentication密码代理验证;Rules--->Apply GZIPEncoding采用GZIP编码;Rules--->Remove AllEncodings删除全部编码;Rules--->Hide 304s隐藏304会话;Rules--->Request JapaneseContent要求日语内容;Rules--->User-Agents支持把User-Agents请求头设置或替换成指定值;Rules--->Performance提供影响web性能的简单选项;
AutomaticBreakpoints--->Before Requests请求之前;AutomaticBreakpoints--->After Responses 响应之后;AutomaticBreakpoints--->Disabled禁用;AutomaticBreakpoints--->Ignore Images忽略图片;
Performance--->SimulateModem speeds模拟调制解调器速度;Performance--->DisableCaching禁止缓存Performance--->CacheAlways Fresh新的缓存

④Tools工具:


Tools--->Options选项;Tools--->WinINET OptionsWinINET选项;Tools--->Clear WinINETCache-清除WinINET缓存;Tools--->Clear WinINETCookies清除WinINET的Cookies;Tools--->TextWizard文字编码解码;Tools--->Compare Sessions比较会话;Tools--->New SessionClipboard新会话写字板;Tools--->HOSTS hosts配置;Tools--->Reset Script重置脚本;Tools--->Sandbox沙箱;Tools--->ViewIE Cache查看IE缓存;

⑤View视图:


View--->Show Toolbar显示工具条;View--->Default Layout默认布局;View--->Stacked Layout堆叠布局;View--->Wide Layout全部布局;View--->Tabs制表符;View--->Statistics统计;View--->Inspectors嗅探;View--->Composer构造;View--->Minimize to Tray关闭自托盘;View--->Stay on Top前端显示;View--->Squish SessionList会话列表格式;View--->AutoScroll SessionList自动滚动会话链表;View--->Refresh刷新;
Tabs--->preferences偏好;Tabs--->autosave自动保存;Tabs--->apitest API测试

⑥Help帮助:


Help--->Help帮助;Help--->Fiddler Book说明;Help--->Discussions社区讨论;Help--->HTTP ReferencesHTTP的参考;Help--->TroubleshootFilters-故障排除;Help--->Check For Updates检测更新;Help--->Send Feedback发送反馈;Help--->Abou关于。


2、快捷菜单

会话列表作用进行备注

Replay--->重新发送选中请求;

Remove--->删除会话;

Go--->打断点时使用;

Stream--->点击为流模式,不点击为缓冲模式;

缓冲模式:内容全部返回在发送到客户端;可以控制响应,修响应数据,但是时序图有时候会出现异常;

流模式:收到内容立即发送给客户端;更接近真实浏览器的性能速度快,时序图更准确(比如瀑布图),但是不能控制响应;

如果不需要AutoResponse和Fileters功能的话,一般使用缓冲模式;

Decode--->解码,默认勾选;

Keep:All sessions--->保持全部会话;

Any Process--->任何进程,精准定位;

Find--->查找;

Save--->保存;

截屏;

秒表;

Browse--->打开浏览器;

Clear Cache--->清除缓存;

TextWizard--->编码解码小工具;

Tearoff--->打开一个新窗口;

MSDN Search--->MSDN关键字查找;

3、 会话列表


#--->图标及序号

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
请求使用了HTTPCONNECT方法,使用HTTPS协议建立连接通道
请求使用POST方法向服务器发送数据
响应是HTML内容
响应是图片
响应是脚本文件
响应是CSS文件
响应是XML
响应是JSON
响应是音频文件
响应是视频文件
响应是Silverlight程序
响应是Flash应用程序
响应是字体文件
通用响应成功
响应是HTTP/300,301,302,303,307重定向
响应是HTTP/304,使用缓存文件
响应需要一个客户端凭证
响应是一个Sever错误
会话被客户端或fiddler或Sever终止HTTP状态: 红色表示错误,黄色表示认证数据流类型: 灰色表示CONNECT响应类型:紫色表示CSS,蓝色表示HTML,绿色表示script,灰色表示图像


4、会话右键


右键会话解析如下

Decode Selected Sessions--->解码选择的session,一些Response body 会Encode。Decode后通常能解决乱码的问题;

AtuoScroll Session List--->自动滚动 Session List。当不断有新的session进入list时候,关闭此功能,更容易定位选择某一个或多个session;

Comment--->为一个或多个session添加注释;

Compare--->对比:选中两条session右键,就会出现Compare选项。这个功能是通过第三方的软件来实现,可以下载WinDiff.Exe放在Fiddler的安装目录下,或是下载WinMerge安装,安装时,注意将软件添加到系统环境变量中;

COMETPeek--->命令会保留正在执行的响应的“快照”,在响应完成前就可以查看部分内容。当web应用采用COMET模式以流式向客户端返回数据时,可以使用该命令。由于“流式”的含义就是永不结束,直有当服务端停止连接后,Fiddler才会返回响应;

Abort Session--->终止当前正在执行的请求;

Clone Response--->当Session列表中选中两个Session,并且其中一个Session在断点处中止,而另一个Session已经运行完成时才可用。该命令会把已经完成的Session的响应拷贝给暂停运行的Session;

Unlock For Editing--->使Session的请求和响应都可以在Inspector中编辑;

Inspect in New Windowns--->打开一个新的Session Inspector窗口;

Properties--->打开Session属性窗口,显示当前的Session信息;

copy

Copy拷贝:

Copy--->Just Url

将选中session的url拷贝到剪贴板;

Copy--->This Column拷贝摘要,其中包括:请求方法,URL,响应状态码及状态信息。如果是重定向的HTTP/3xx,还会有该请求Responseheader中Location字段;

Copy--->Terse Summary简要;

Copy--->Headers Only拷贝头信息,包括请求和返回的头信息;

Copy--->Session拷贝整个Session;

Copy--->Response DataURL

拷贝响应的DataURI(一个特定资源的协议),格式规范:data:[

type>][;charset=][;base64],,这项技术一般用于图片内嵌页面;

Copy--->Full Summary

将session列表显示的信息及表头复制到剪贴板,通过tab分割。便于在Excel或其他编辑器中查看编辑;

save

Save保存:

Save--->Selected Sessions选择Sessions;

Save--->Selected

Sessions---> in ArchiveZIP将选择的sessions保存为SAZ格式压缩文件;

Save--->Selected

Sessions--->as Text将所选Session保存为txt格式文件;

Save--->Selected

Sessions---> as Text(Headers only)将所选sessions的请求和响应头一起保存为txt格式文件;

Remove

Remove删除:

Remove--->Selected Sessions删除选中的sessions

Remove--->Unselected Sessions删除未选中的sessions;

Remove--->All Session删除所有sessions

Filter Now

Filter Now快捷过滤:

选中一个session右键会出现Filter Now选项,Fiddler会根据你选择的session快速生成隐藏/显示条件;

当我们选则隐藏某一个条件后,session list会隐藏符合条件的session;

Mark

Mark标记所选的会话:

Mark--->Strikeout失败;

Mark--->Red红色;

Mark--->Blue蓝色;

Mark--->Gold金色;

Mark--->Green绿色;

Mark--->Orange橙色;

Mark--->Purple紫色;

Mark--->Unmark未标记;

Replay

Replay重新请求此地址:

Replay--->Reissue Requests将选中的请求以原来的形式重新发送。如果按住Shift键,可以键入重复次数。或是选中sessions后按Shift+R;

Replay--->Reissue Unconditionally无条件的发送选中请求,告诉服务器不要返回HTTP/304响应,快捷键Shift+U;

Replay--->Reissue and Edit把选中的请求以原来的形式重新发送,在每个session中设置请求断点,在请求被发送到服务器前,使用Fiddler的Inspector修改请求;

Replay--->Reissue and Verify把选中的请求以原来的形式重新发送,验证Response状态码和Response body;

重新发送的请求会被标记出背景色,绿色代表验证通过,红色表示验证失败,在comments中会提示失败原因和对比的session id;

Replay--->Reissue

Sequentially将选中的请求重新发送,等待前一个响应回来后,在发送下一个;

Replay--->Reissue from

Composer将选中的请求克隆到Fiddler右侧的Composer模块中(Composer后续博客讲解);

Replay--->Revisit

in IE将sessions的url在IE中打开。注意IE总是使用GET方法,而且用自己的header和cookie,不管session中提供了什么HTTP方法和请求头;

select

Select选择:

Select--->Parent Request当前请求是从那个页面来的,相当于当前请求头中的Refere字段值。鼠标放在session上按P键可执行;

Select--->Child Requests与1相反;

Select--->Duplicate Requests选中Session列表中和当前的Session的URL和HTTP方法相同的所有Session;

Select--->Matching  Values值匹配选择,可以根据Session列表中的任意值匹配,鼠标放任意一列,点击Alt+左键,就会匹配出相同值的session;

5、选项卡


Statidtics--->对选中多个Sessions统计;

Inspectors--->请求头和响应体

AutoResponder--->重新定向

Composer--->模拟进行发送

FiddlerScript--->脚本

Log--->日志

Fiters--->过滤

Timeline--->瀑布流时间图

6、请求查看器


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树来显示它;

7、响应查看器


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树来显示它;

好了,本文内容大致就这么多,感谢所有读者! 对于本文有不同看法笔者很期待与您交流沟通,互相学习

下篇:《教程二,捕获设置》主要解析点:

1、Fiddler抓web网站请求

2、Fiddler抓APP请求:

①常用设置

②附加设置(常用设置后无法进行抓包)

注:本文只是将这个工具做详细介绍,挖掘隐藏的黑暗手法,如何发挥最大程度使用后续还会更新,更多的使用方法,敬请期待!

如需转载,请注明处,并附上链接,谢谢!

你可能感兴趣的:(教程一, Fiddler界面(介绍)概述)