观心静

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
Fiddler的基本介绍
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展
  你对HTTP协议越了解,你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。
Fiddler的安装
在官网选择FreeDowanload 下载
 
在下载页面中选择window或者linux版本下载(推荐使用window版本,Linux版本bug很多),下载完成后直接解压即可。
如果是window版本可能需要安装,安装完成在目录中找到Fiddler.exe,点击打开。
如果是linux版本可能需要先行安装sudo apt-get install mono-complete。安装完成后直接在Fiddler.exe目录下打开cmd输入mono Fiddler.exe。
Fiddler工具打开后是这样的:
 
Fiddler的工作原理
  Fiddler是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。
Fiddler如何捕获Firefox的会话
能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将Firefox的代理改为127.0.0.1:8888就可以监听数据了。
 
演示web上如何抓包
首先我们需要确定一下配置的端口,一般情况下我们是不需要修改端口的。但是,端口的修改是工具的重要部分,所以我们还是有必要了解一下。在菜单栏中找到Tools-Options...,点击打开。
 
打开后会弹出这个窗口,我们在窗口的选项卡上选择Connections,在里面我们可以看到端口默认为8888,如果你有特殊需求可以重新修改这个端口(建议从9000-10000之间设定自定义端口,过低的端口系统会经常占用),一般情况下我们没有必要修改这个端口,因为8888端口默认是分配给http的。
然后,我们需要确定浏览器上的端口配置。一般情况下,浏览器的端口是不需要配置,就可以抓包了。但是如果你无法抓包到就要重新设置浏览器的端口。我们拿火狐浏览器为例子:在火狐浏览器中,点击更多图标,选择“首选项”,点击进入。进入后我们选择“常规”,拉到最下面可以看到“网络设置”,点击“设置”。
 
进入设置界面后,我们可以切换到“手动代理配置”。输入127.0.0.1,并且在端口后面输入8888。(这个需要跟你刚才在Fiddler工具上看到的端口号一致)127.0.0.1这个ip地址通常是默认的ip地址。如果这个ip地址设置后依然无法抓包可以试试输入本机的ip地址。
接着,我们在工具菜单栏里选择”File“,勾选”Capture
Traffic“(不需要抓包则可以取消勾选),我们就可以在浏览器里浏览网页了,在工具里会自动抓包。成功抓包后,在工具界面里会出现请求的http接口。
演示手机设备如何抓包
在web上抓包其实意义不是很大,因为现在的浏览器大多提供开发者工具。你可以在开发者工具里查看大量的http接口信息。但是web上抓包还是有拦截、重发、修改http请求的意义。
而在手机上抓包则更有实际意义,因为手机上暂时没有显示接口信息的工具。想知道手机上发出的http请求,只能依靠抓包工具。
首先,我们需要再次配置一下Fiddler工具,在菜单栏里找到Tools-Options...,点击打开。
勾选Allow remote computers to connect ,点击ok保存。
接下来我们需要让手机连上WiFi,但是注意!手机的WiFi与PC的网络必需是一个局域网下的。连上WiFi后,在WiFi界面长按已经连接的WiFi,会弹出一个小窗口里面有“修改网络”,点击进入。(个别手机是在WiFi旁边直接有个一个设置小图标)
在WiFi的设置界面里,找到“高级选项”,设置代理为“手动”。会多出“代理服务器主机名”与“代理服务器端口”。
“代理服务器主机名”我们需要输入电脑的IP地址,打开cmd输入ifconfig。
可以看到我的电脑的ip地址为192.168.1.91,在这个“代理服务器主机名”,请输入你的电脑ip地址。
“代理服务器端口”与Fiddler工具的端口一致,输入8888即可。
接着,我们在工具菜单栏里选择”File“,勾选”Capture
Traffic“(不需要抓包则可以取消勾选),这个时候我们,就可以进入手机的浏览器浏览网页,并且可以在工具里查看到http的抓包信息了。
 
如果这个时候出现了安全认证的问题导致无法上网。我们需要在手机里打开浏览器输入你的ip地址加端口号,例:192.168.1.91:8888.
进入到这个网页,点击最下面标蓝的FiddlerRoot certificate,下载认证凭证书,下载完成后点击认证凭证书安装即可。
了解Fiddler各项菜单功能与数据
视图功能区域
会话的概念:一次请求和一次相应就是一个会话。
了解快捷功能区菜单
  • 给会话添加备注信息
  • 重新加载当前会话
  • 删除会话选项
  • 给断点的http请求放行(后续会说明如何断点)
  • 响应模式。也即是,当Fiddler拿到远程的response后是缓存起来一次响应给客户端还是以stream的方式直接响应。
  • 解码,有些请求是被编码的,点击这个按钮后可以根据响应的编码格式自动解码。
  • 设置在界面中显示会话的最大数量
  • 查找会话
  • 保存会话
  • 截图功能,截取的图,会在会话列表信息里出现,点击保存即可。
  • 计时器功能,可以用来快速的计时。
  • 文本的编码格式转换工具。
  • 将右侧的会话详情栏分开
会话列表栏介绍
显示每个会话的大致信息。
 
列说明
图标说明
会话详情栏介绍
Statistics统计
统计会话的一些时间信息,可以按ctrl选取多个会话一起统计查看。
Inspectors详情
大部分时候只需要关注Raw与JSON,上半部为请求部分,下半部为响应部分。可以根据实际需要查看红色框内的子选项内容。 Raw会提供完整的请求报头与响应报头信息 JSON公司的http接口数据大部分都是用JSON封装传递的,所以重点查看此部分的数据。
 
断点请求/响应
 
如图,箭头所指的位置时可以点击的。共三种状态:
  1. 空白:不设置断点。
  1. 箭头向上:表示断点请求。此时客户端的请求是无法直接到达目标服务器的,需要手动控制。
  1. 箭头向下:表示断点响应。此时目标服务器的响应是无法直接到达客户端的,需要手动控制。
断点请求并修改
修改请求如图,操作步骤:
  1. 设置断点请求,手机端访问接口
  1. 点击对应的会话
  1. 查看请求报文信息
  1. 修改请求内容
  1. 完成断点,放行,把该请求发送给目标服务器。
 
 
断点响应并修改
和断点请求操作类似,只是在响应区域修改报文信息即可。
在断点响应时,请注意超时时间。
过滤会话
有时候http请求响应太多,我们不需要看到一些不关注的请求与响应。这个时候我们就需要使用过滤功能
 
 
 
posted on 2018-11-15 14:11  观心静  阅读(297)  评论(0编辑  收藏  举报