抓包工具[1]:Fiddler 一些使用技巧

Fiddler 是吉他的意思,不知道外国人为什么总是喜欢用动物和身边的东西作为名称。

1. 增加服务器 IP 显示

默认 Fiddler 只显示了 Host, 对于域名跨机房部署的服务来说,测试时非常不便。我们需要知道明确的 IP 地址,以确认这些服务是否正常被更新。而,经常切换 host 的测试或者开发场景,需求更加迫切。

找到 CustomRules.js 文件,

  • 方法1:打开 C:\Users'YOURNAME'\Documents\Fiddler2\Scripts
  • 方法2:Ctrl+R,或者, 菜单 -> Rules -> Customize Rules...
抓包工具[1]:Fiddler 一些使用技巧_第1张图片

在 CustomRules.js 中 Ctrl+F 查找 static function Main,大约在文件的 300 行左右的位置,添加上以下代码

FiddlerObject.UI.lvSessions.AddBoundColumn("Server", 120, "X-HostIP");

操作很简单,被注释的代码中其实有,可直接复制,如下图:

抓包工具[1]:Fiddler 一些使用技巧_第2张图片

2. 过滤

可以通过 host 过滤,进程过滤,请求头,响应状态值过滤等,这里的规则比较灵活,可自行组合,一般在右侧,找到 Filters,勾选,再 Actions -> Run Filterset now 即可,简单略过。

3. Firefox 不能抓包的问题

IE 和 Chrome 都有抓包,但是 Firefox 不行,可能安装了 AutoProxy 代理插件,可禁用。或者,增加一条代理规则,Fiddler 端口为 8888。
如仍然不能抓包,检查 工具 -> 选项 -> 高级 -> 网络 -> 链接 -> 设置,选择为使用系统代理设置。

4. 抓手机包

通常,我们利用此方法来抓取手机上的请求包,这里抓包,根据实际经验来讲,设置通常不会那么一帆风顺。必须得有一个前提条件:

手机和抓包的 PC 在同一个局域网的网段内

假如我们不满足上述条件,如某些办公环境下,PC 网线插口 和 wifi 用的不同的网段,可以通过搭建私网的方式解决(稍微耗费体力,首先保证运维不打你……)。简单点儿,使用 USB wifi 接收器,将手机链接上此网络。或者参照另外一种方法,通过 tcpdump 来完成抓包的工作。

假如我们满足以上条件,则可以开始进行下列操作:

菜单 -> Tools -> Fiddler Options... -> Connections

勾选 Allow remote computers to connect,如果需要抓取 https,建议将 HTTPS 这个 Tab 下的也都勾选上。

Fiddler 自动监听的端口是8888,设置完成后重启 Fiddler,查看是否真的有在监听

netstat -anop tcp

当接口监听处于 LISTENING 时表示准备就绪。
将手机网络的服务器 IP 地址设置为本机 IP 和 端口号设置为8888,则此时,再次使用上述命令查看,可以看到已经建立链接。配置正式完成,可以开始抓包了。

PS,
当显示 FIN_WAIT_2、CLOSE_WAIT 时,不能抓到包,重启 Fiddler 可解决

5. 证书设置

通常用于 https 的请求环境,需要模拟证书。PC-web 的抓包很简单,在 Fiddler Options -> HTTPS 中,将所有的都勾选上。抓包时,Protocol 会将 HTTP 和 HTTPS 区分开来。而返回结果,则不会显示出来,会提示 "Response is encoded and may require decoding before inspection. Click here to transform."
双击,就会 decode,显示正常的值。

但是,在移动端, HTTPS 的包没有抓到,方法还待更新...

6. 标识识别和处理

  1. logo 和 颜色 识别
    客户端或者浏览器请求服务器,通过设置 Content-Type 得到返回类型
    通常有如下 5 种返回类型:
  • 文本
  • html
  • json 串或 xml
  • 图片
  • css

请求包的每一行的颜色与 请求类型 和 返回状态值 相关,以下是常见的类型和对应的颜色匹配,可以协助区分。

颜色 Content-Type Result
蓝色 text/html; 返回 200
黑色 text/html 或 text/plain 或 application/json 等; 返回 302, 返回 200
绿色 application/x-javascript; 返回 200
灰色 image/jpeg,png等 返回 200。显示了 Tunnel to ,包大小为 84 或者 0,左侧图标为锁,表示 https 传输
紫色 text/css; 返回200,css 文件
红色 任何类型 服务不可达如 404、500、504 等错误码时

灰色、黑色、绿色、蓝色、紫色的请求,都有可能是 200 的返回值类型

7. AutoResponder & Mock

自动回复其实可以理解为一个 mock 服务,将请求服务器拦截到本地,采用本地的返回值进行返回。此方法主要用于本地接口调试。

8. 命令行

9. 断点调试

参考
http://blog.csdn.net/ohmygirl/article/details/17855031

to be continued...

你可能感兴趣的:(抓包工具[1]:Fiddler 一些使用技巧)