1. 下载、安装
官网下载:https://www.telerik.com/fiddler
安装:一直下一步就可以
2. 抓取HTTPS协议
工具栏找到Tools–>Options,勾选内容如下图所示,点击OK,即可。
原理:fiddler伪造CA证书来欺骗浏览器和服务器。在浏览器面前Fiddler伪装成一个HTTPS服务器,而在真正的HTTPS服务器面前Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的。
3. 面板介绍
3.1 Toolbar工具栏
3.2 左侧面板列名介绍
列名 | 含义 |
---|---|
# | 抓取顺序 |
result | HTTP状态码 |
Protocol | 请求使用的协议:HTTP/HTTPS |
Host | 请求地址的主机名 |
URL | 请求资源的位置 |
Body | 请求的大小 |
Caching | 请求的缓存过期时间或者缓存控制值 |
Content-Type | 请求响应的类型 |
Process | 发送此请求的过程:进程ID |
Comments | 允许用户为此会话添加备注 |
Custom | 允许用户设置自定义值 |
3.3 右侧页签介绍
页签 | 含义 |
---|---|
Statistics统计 | 通过该页签, 用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。选择第一个请求和最后一个请求, 可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多, 从而对页面的访问进行访问速度优化 |
Inspectors检查 | 它提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息,它分为上下两部分:上部分为HTTP Request(请求)展示,下部分为HTTPResponse(响应)展示 |
AutoResponse自动响应 | Fiddler最实用的功能, 它可以抓取在线页面保存到本地进行调试, 大大减少了在线调试的困难, 可以让我们修改服务器端返回的数据, 例如让返回都是HTTP404或者读取本地文件作为返回内容 |
composer构建 | 支持手动构建和发送HTTP, HTTPS和FTP请求, 我们还可以从web session列表中拖曳session, 把它放到composer选项卡中, 当我们点击Execute按钮, 把请求发送到服务器端。Parsed模式下你只需要提供简单的URLS地址即可 |
log日志 | 打印日志 |
Filters过滤 | 过滤器可以对左侧的数据流列表进行过滤, 我们可以标记、 修改或隐藏某些特征的数据流。最常用的过滤条件:Zone和Host,Zone 指定只显示内网(Intranet)或互联网(Internet)的内容;Host 指定显示某个域名下的会话。 |
Timeline时间轴 | 时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。 每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为 X 轴, 用图表的形式展现出来, 就形成了瀑布图。 在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),Timeline 便会显示指定内容从服务端传输到客户端的时间 |
3.4 Fiddler内置命令与断点
Fiddler断点功能就是将请求截获下来不发送,然后将包内容修改后再次发送给服务器。
断点可以在下图中的命令行输入也可以通过点击Web Browsers旁边的按钮实现(下图中红色框圈住的地方)
命令 | 对应请求项 | 介绍 | 示例 |
---|---|---|---|
? | all | 问号后边跟一个字符串,可以匹配出包含这个字符串的请求 | |
> | Body | 大于号后面跟一个数字,可以匹配出请求大于这个数字的请求 | >1000 |
< | Body | 小于号后面跟一个数字,可以匹配出请求小于这个数的字请求 | <1000 |
= | Result | 等于号后面跟数字,可以匹配HTTP返回码 | =200 |
@ | Host | @后面跟Host,可以匹配域名 | @www.baidu.com |
select | Content-Type | select后面跟响应类型,可以匹配到相关的类型 | select image |
cls | All | 清空当前所有请求 | cls |
dump | All | 将所有请求打包成saz压缩包,保存到“我的文档\Fiddler2\Captures”目录下 | dump |
start | All | 开始监听请求 | start |
stop | All | 停止监听请求 | stop |
断点命令
命令 | 请求 | 介绍 | 示例 |
---|---|---|---|
bpafter | All | bpafter后边跟一个字符串,表示中断所有包含该字符串的请求 | bpafter baidu(输入bpafter解除断点) |
bpu | All | 收到请求,中断响应 | bpu baidu(输入bpu解除断点) |
bps | Result | 后面跟状态吗,表示中断所有是这个状态码的请求 | bps 200(输入bps解除断点) |
bpv / bpm | HTTP方法 | 只中断HTTP方法的命令 | bpv get(输入bpv解除断点) |
g / go | All | 放行所有中断下来的请求 | g |
3.5手机抓包设置
打开Fiddler,选择【tools】→【options】→进入options设置界面,选择【Connections】→勾选【Allow remote computers to connect】,记住端口号8888,点击ok
设置手机代理,在手机上安装fiddler证书。win+R输入cmd打开命令行窗口,输入ipconfig,得到自己的本机ip
保证你的手机wifi和电脑ip处于同一网段,打开手机网络设置,进入【设置】,点击【WLAN】,长按已连接的wifi,点击【修改网络】,将代理改为【手动】,服务器主机名填写为你的电脑ip,服务器端口填写8888,然后保存。
之后在手机浏览器输入http://192.168.192.168:8888,然后下载FiddlerRoot certificate证书。
在手机端打开APP应用,验证Fiddler抓包是否成功。
Fiddler会捕获非常多的请求,如果想对请求做出过滤,比如只想捕获手机端的请求,可以选择【tools】→【options】→进入options设置界面,选择【HTTPS】→在Decrypt HTTPS traffic这一栏,选中【from remote clients only】,则会过滤掉除手机端的其他请求。