Fiddler抓包工具使用详解

一、Fiddler

最强大最好用的Web调试工具之一, 它能记录所有客户端和服务器的http和https请求。允许你监视、设置断点、甚至修改输入输出数据。

1-fiddler是一个抓包工具,当浏览器访问服务器会形成一个请求,此时,fiddler就处于请求之间,当浏览器发送请求,会先经过fiddler,然后在到服务器;

2-当服务器有返回数据给浏览器显示时,也会先经过fiddler,然后数据才到浏览器中显示,这样一个过程,fiddler就抓取到了请求和响应的整个过程。

 

二、Fiddler界面

三、Fiddler抓包解析

1.使用Fiddler抓包后,会话列表面板

Result : HTTP响应的状态

Protocol:请求使用的协议

HOST:请求地址的域名 URL

URL:请求的服务器路径和文件名,也包含GET参数

BODY:请求的大小,以byte为单位

Content-Type:请求响应的类型

Caching:请求的缓存过期时间或缓存控制header的值

Process:发出此请求的Windows进程及进程ID

Comments :用户通过脚本或者菜单给此session增加的备注

custom:用户可以通过脚本设置的自定义值

2.Fiddler右边面板介绍

Statistics

通过该页签, 用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。选择第一个请求和最后一个请求, 可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多, 从而对页面的访问进行访问速度优化

inspectors

它提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息,它分为上下两部分:上部分为HTTP Request(请求)展示,下部分为HTTPResponse(响应)展示

AutoResponse

Fiddler最实用的功能, 它可以抓取在线页面保存到本地进行调试, 大大减少了在线调试的困难, 可以让我们修改服务器端返回的数据, 例如让返回都是HTTP404或者读取本地文件作为返回内容。

可设置打开某网页显示自己想要的内容,比如抓取百度链接,点击add rule,设置如下所示:

 

 

composer

支持手动构建和发送HTTP, HTTPS和FTP请求, 我们还可以从web session列表中拖曳session, 把它放到composer选项卡中, 当我们点击Execute按钮, 把请求发送到服务器端。操作如下图所示

 

log: 打印日志

Filters

过滤器可以对左侧的数据流列表进行过滤, 我们可以标记、 修改或隐藏某些特征的数据流。

 

四、Fiddler命令行工具

Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。

常见得命令有:

help : 打开官方的使用页面介绍, 所有的命令都会列出来

cls : 清屏 (Ctrl+x 也可以清屏)

select : 选择会话的命令, 选择所有相应类型select image、select css、select html

?sometext : 查找字符串并高亮显示查找到的会话列表的条目,?qq.com

>size : 选择请求响应大小小于size字节的会话

=status/=method/@host:查找状态、方法、主机相对应的session会话,=504,=get,@www.qq.com

quit:退出fiddler

 

五、Fiddler应用

1.手机抓包

①启动Fiddler, 打开菜单栏中的 Tools > Fiddler Options, 打开“FiddlerOptions” 对话框

②在“Fiddler Options”对话框切换到“Connections” 选项卡, 然后勾选“Allowromote computers to connect” 后面的复选框, 然后点击“OK” 按钮

③在本机命令行输入: ipconfig, 找到本机的ip地址。

④打开android设备的“设置” ->“WLAN”,找到你要连接的网络,在上面长按,然后选择“修改网络”,弹出网络设置对话框,然后勾选“显示高级选项”(不同的手机,设置方法有所不同)

⑤在“代理” 后面的输入框选择“手动”,在“代理服务器主机名”后面的输入框输入电脑的ip地址,在“代理服务器端口”后面的输入框输入8888, 然后点击“保存” 按钮

⑥然后启动android设备中的浏览器,访问百度的首页,在fiddler中可以看到完成的请求和响应数据

 

2.过滤功能

①选择Filters页签,勾选use Filters勾选 Request Headers 中的 Hide if url contains 过滤项

②在里面输入:REGEX:(?insx)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav)(\?.*)?$

REGEX: 表示启用正则表达式(?insx) 设置正则解释的规则,忽略大小写等。

此表达式表示过滤掉 url 中包括 css、ico、jpg 等后缀的请求

③勾选 Request Headers中的show only if URL contains,在里面输入

REGEX:(?insx).*\.?baidu.com/home.* 只显示: baidu.com/Home

 

Fiddler过滤指定域名

第二个选项是只监控以下网址,如只监控百度,在下面的输入框里填上www.baidu.com

“No Host Filter”不设置hosts过滤

“Hide The Following Hosts”隐藏过滤到的域名

“Show Only The Following Hosts”只显示过滤到的域名

“Flag The Following Hosts”标记过滤到的域名

 

3.拦截HTTP请求

使用Fiddler进行HTTP断点调试是fiddler一强大和实用的工具之一。通过设置断点,Fiddler可以做到:

①修改HTTP请求头信息。例如修改请求头的UA,Cookie,Referer信息,通过“伪造”相应信息达到相应的目的(调试,模拟用户真实请求等)。

②构造请求数据,突破表单的限制,随意提交数据。避免页面js和表单限制影响相关调试。

③拦截响应数据,修改响应实体。

 

设置断点共有两种方式:

①fiddler菜单栏->rules->automatic Breakpoints->选择断点方式,这种方式下设定的断点会对之后的所有HTTP请求有效。有两个断点位置:

1)before response。也就是发送请求之后,但是Fiddler代理中转之前,这时可以修改请求的数据。

2)after response。也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果。

3)如何消除命令呢?点击Rules->Automatic Breakpoint->Disabled

如下图所示:

②命令行设置断点

1)bpu在请求开始时中断

2)bpafter在响应到达时中断

3)bps中断HTTP响应状态为指定字符的全部session响应

4)bpv/bpm中断指定请求方式的全部session响应

 

示例一:

命令行输入:bpm www.baidu.cm(拦截www.baidu.com请求)

解除拦截:输入命令:bpu

示意图如下所示:

 

示例二:

命令行输入:bpuafter www.baidu.cm(拦截www.baidu.cm返回值)

解除拦截:输入命令:bpuafter

示意图如下所示:

 

结合实际操作,打开fiddler,去拦截提那个接口,设置成:rules->automatic Breakpoints->before response,在页面上提交订单,拦截效果如下所示,页面中一直在加载,点击run to comletion放行拦截

4.修改数据

拦截HTTP请求后修改方式有两种,一种是临时修改,即结果只对当次请求有效,另一种是永久修改,可以通过urlreplace命令实现。

①临时修改请求

即在fiddler中执行Inspectors->WebForms,修改请求变量参数后执行Run to Completion,服务器返回新的请求结果

②永久性修改请求

1)命令行设置修改规则,修改请求:urlreplace 旧请求值 新请求值

fiddler命令行输入:urlreplace uuid=103 uuid=105

其中uuid是请求参数,输入命令后回车即可,新的请求设置成功,除非释放请求,否则请求值不变,释放请求命令urlreplace

2)脚本中修改规则,打开脚本方式:fiddler执行Rules->Customize Rules

备注:本文转载温一壶清酒
https://www.cnblogs.com/hong-fithing/p/7582947.html 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值