文章目录
一、Fiddler介绍
- Fiddler是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 。
- Fiddler能够记录客户端和服务器之间的所有请求,可以针对特定的请求,分析请求数据、设置断点、调试http/https应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是http/https调试的利器。
二、Fiddler安装
- fiddler工具下载网址:http://www.telerik.com/download/fiddler
- 运行 FiddlerSetup.exe,一路下一步。
- 安装完成后,运行Fiddler即可。
三、Fiddler原理
- Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。
- 当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。
四、Fiddler设置THHPS
- 点击Tools – > Options
- 点击HTTPS标签
- 如图:
- 下载Fiddler调试证书,在浏览器访问: http://localhost:8888
- 安装证书,双击安装,一路下一步
- Fiddler设置信任证书
- 验证成果,打开百度
五、请求图标的含义
六、工具栏含义
依次是:
注释、回放请求、删除会话、继续执行、流模式/缓冲模式、解码、保留会话、监控、指定进程、查找、保存会话、切图、计时、打开浏览器、清除IE缓存、编码/解码工具、、弹出控制监控面板、MSDN、帮助
七、Statistics选项卡
字段 | 解释 |
---|---|
request count | 请求数,表示该session总共发起了多少个请求 |
Bytes sent | 发送请求的字节数(包括请求头和请求体) |
Bytes received | 接收到的字节数(包括响应头和响应体) |
ClientConnected | 客户端连接的时间 |
ClientBeginRequest | 客户端开始发送请求的时间 |
GotRequestHeaders | 获得请求头文件的时间 |
ClientDoneRequest | 客户端完成请求的时间 |
Determine Gateway | 确定网关使用的时间 |
DNS Lookup | 查找dns使用的时间 |
TCP/IP Connectt | tcp/ip 连接使用的时间 |
HTTPS Handshake | https握手使用的时间 |
ServerConnected | 服务连接发生的时间 |
FiddlerBeginRequest | fiddler开始请求的时间 |
ServerGotRequest | 服务器得到请求的时间 |
ServerBeginResponse | 服务器开始响应的时间 |
GotResponseHeaders | 得到响应头文件的时间 |
ServerDoneResponse | 服务器完成响应的时间 |
ClientBeginResponse | 客户端开始响应的时间 |
ClientDoneResponse | 客户端完成响应的时间 |
Overall Elapsed | 全部花掉的时间(使用客户端完成响应的时间-客户端开始请求的时间) |
八、Inspectors选项卡
1、请求部分
标签 | 注释 |
---|---|
Headers | 显示头部信息 |
TextView、SyntaxView、WebForms、HexView、JSON、XML | 不同显示方式,需要根据请求的不同格式进行选择。一个请求不可能满足所有方式进行显示 |
Auth | 认证信息 |
Cookies | cookie信息 |
Raw | 请求的完整信息,这里可以看到请求的方法、地址、路径、协议版本、头信息和参数等 |
2、响应部分
标签 | 注释 |
---|---|
Headers | 显示头部信息 |
TextView、SyntaxView、ImageView、HexView、WebView、JSON、XML | 不同显示方式,需要根据请求的不同格式进行选择。一个请求不可能满足所有方式进行显示 |
Auth | 认证信息 |
Caching | 缓存信息 |
Cookies | cookie信息 |
Raw | 请求的完整信息,这里可以看到请求的方法、地址、路径、协议版本、头信息和参数等 |
九、Filters 选项卡
开启Fiddler后,默认会监听所有的请求,在实际运用中,我们只需要监听某些部分的请求。这个时候就可以使用,Filters功能去控制,过滤掉不必要的请求。
1、内外网过滤方式
选项 | 注释 |
---|---|
Show only Intranet Hosts | 只显示内网hosts |
Show only Internet Hosts | 只显示外网hosts |
2、规则过滤方式
选项 | 注释 |
---|---|
Hide the following Hosts | 隐藏以下hosts |
Show only the following Hosts | 只显示以下hosts |
Flag the following Hosts | 标记以下hosts,在左侧session中会加粗 |
3、进程过滤方式
进程过滤,通过配置,只监听/不监听哪些进程的请求
选项 | 注释 |
---|---|
Show only traffic from | 只显示来自后面选择进程的请求 |
Show only Internet Exporer traffic | 只显示来自IE的请求 |
Hide trafficfrom service host | 隐藏来自service host的请求 |
4、请求头过滤方式
选项 | 注释 |
---|---|
Show only if URL contains | 只显示URL包含的,多个时空格分开 |
Hide if URL contains | 隐藏URL包含的,多个时空格分开 |
Flag requests with headers | 加粗显示HTTP请求头中包含指定的HTTP请求头的类型名称 |
Delete request headers | 删除HTTP请求头中包含指定的HTTP请求头的类型名称 |
Set request header | 创建一个指定名称和值的HTTP请求头,或更新HTTP请求头为指定值。运行后会将所有的Sessions修改 |
5、断点过滤方式
对特定属性的请求或响应设置断点
选项 | 注释 |
---|---|
Break request on POST | POST请求设置断点 |
Break request on GET with query string | GET方法且URL中包含查询条件的请求设置断点。(URL中包含参数params) |
Break on XMLHttpRequest | 通过XMLHttpRequest对象发送的请求设置断点。通过查找请求头中是否含有X-Requested-With和X-Download-Initiator |
Break response on Content-Type | 响应头Content-Type中包含了指定的文本设置断点 |
6、响应状态码过滤方式
选项 | 注释 |
---|---|
Hide success(2xx) | 隐藏状态码在200至299的响应 |
Hide non-2xx | 隐藏非200至299的响应 |
Hide Authentication demands(401,407) | 隐藏状态码为401,407的响应。需要用户进一步确认证书的请求 |
Hide redirects(300,301,302,303,307) | 隐藏状态码为300,301,302,303,307重定向的响应 |
Hide Not Modified(304) | 隐藏状态码为304的响应。缓存实体有效返回304 |
7、响应类型和大小过滤方式
选项 | 注释 |
---|---|
Show only IMAGE/* | 只显示Content-Type是图像类型的Session |
Show only HTML | 只显示Content-Type是HTML类型的Session |
Show only TEXT/CSS | 只显示Content-Type是text/css类型的Session |
Show only SCRIPTS | 只显示Content-Type是脚本类型的Session |
Show only XML | 只显示Content-Type是xml类型的Session |
Show only JSON | 只显示Content-Type是json类型的Session |
Hide IMAGE/* | 隐藏Content-Type是图片类型的Session |
Time HeatMap | 基于服务器返回响应时间给每个Session设置背景色。小于50ms绿色,50-300ms不着色,300-500ms黄色,大于500ms红色 |
Hide smaller than | 隐藏响应体小于指定字节数的响应 |
Hide larger than | 隐藏响应体大于指定字节数的响应 |
Block script files | 返回响应头Content-Type为脚本,将返回HTTP/404响应 |
Block image files | 返回响应头Content-Type为图像,将返 回HTTP/404响应 |
Block SWF files | 返回响应头Content-Type为flash,将返回HTTP/404响应 |
Block CSS files | 返回响应头Content-Type为css,将返回HTTP/404响应 |
8、响应头过滤方式
可以添加或删除HTTP响应头,也可以标识包含特定响应头的响应
选项 | 注释 |
---|---|
Flag responses that set cookies | 粗体显示响应头包含Set-Cookie的响应 |
Flag responses with headers | 粗体显示指定HTTP响应头。同Flag requests withheaders |
Delete responses headers | 删除特定的HTTP响应头。只是从响应头中删除,不删除Session |
Set response header | 创建更新响应头。同Set request header用法一样 |
十、Composer选项卡
1、Parsed标签页
-
手动填写请求,修改各项参数进行测试
-
拖拽抓取到的接口,然后修改参数进行测试
2、Paw标签页
Raw标签,只提供了一个文本框,可在文本框中输入HTTP请求内容(请求行+请求头+请求体)
3、Scratchpad标签
- Scratchpad标签,这个模块是用来保存请求的
- 我们可以复制多个请求内容在这个页面,Fiddler会自动保存这个界面的全部内容(关闭Fiddler再重新打开,这些请求还是存在的)
- 执行时需要选中某个请求内容,点击上方的“execute”可发送请求。若未选中任何内容则会提示“in the box below , please highlight the complete HTTP request to be sent before pressing Execute”
选中需要执行的接口,即可执行。
4、Options标签
标签 | 注释 |
---|---|
Inspect Session | 执行请求后,会自动打开Inspectors选项卡 |
Fix Content-Length header | 控制Composer是否会自动添加或修改Content-Length请求头,表示请求体的大小 |
Follow Redirects | 是否会自动使用响应的Location头 |
Automatically Authenticate | 是否会自动响应服务器的认证需求 |
Tear off | 使Composer选项卡以独立的窗口悬浮 |
十一、移动端抓包
1、Fiddler端设置
使用Fiddler进行移动端的抓包,需要先设置允许远程访问代理服务
2、手机端设置
- 确保手机网络和Fiddler所在的电脑处于同一个局域网,一般有两种方式:(电脑开热点,手机连接电脑的热点;电脑和手机连接同一个wifi)
- 设置手机的网络代理服务为Fiddler的服务地址
- 手机上安装Fiddler调试证书
- 在浏览器中访问http://ip:8888则会打开证书下载一路下一步按照提示完成证书安装(每个厂家的手机都不太一样,具体可以百度)
注意
- IOS:设置 —> 通用 —> 关于本机 —> 受信任证书存储区,找到需要安装的证书,安装即可。
- 设置完成后,需要重启Fiddler,重启后,就可以抓到移动端的数据包了
写在最后
- 本文章主要用于学习,欢迎转载!
- 如用问题,可联系作者!