Fiddler抓包工具最快入门
目录
前言
了解HTTP网络知识
简单了解网络访问过程
简单了解HTTP网络传输协议
工作过程
HTTP请求:
Fildder工具使用教程
抓包的概念
一、什么是抓包
二、为什么要抓包
三、抓包的原理(图解)
Fiddler工具
安装
使用
Fiddler查看发送和接收的数据包
Fiddler设置过滤----抓取指定服务器地址的数据
Fiddler抓取HTTPS
前言
了解HTTP网络知识
简单了解网络访问过程
1. 用户在浏览器上输入URL地址:www.baidu.com,按下回车
2. 浏览器以特定的方式把请求发送给服务器,请求百度页面的内容
3. 服务器根据请求信息,查找用户需要的数据内容
4. 服务器找到想要请求的数据后,将数据以特定方式返回给客户端
5. 客户端接受到数据后,把最终结果显示在浏览器中
核心:
请求---从客户端发送到服务器的请求信息
响应---从服务器返回给客户端的响应信息
简单了解HTTP网络传输协议
HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议
协议: 为了使数据在网络上从源头到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式
工作过程
客户端发起请求:客户端(通常是浏览器)向服务器发送HTTP请求,请求中包含请求方法(例如GET、POST)、URL、HTTP版本号、请求头部等信息。
服务器处理请求:服务器接收到请求后,根据请求内容进行处理,可能是获取请求的资源、执行特定的操作等。服务器会生成HTTP响应并返回给客户端。
服务器返回响应:服务器返回的HTTP响应包含HTTP状态码、响应头部和响应体。状态码表示请求的处理结果(例如200表示成功,404表示未找到资源,500表示服务器内部错误等)。
客户端处理响应:客户端接收到服务器返回的HTTP响应后,根据响应内容进行处理,可能是显示页面内容、执行进一步操作等
HTTP请求:
- 请求行
- 请求头
- 请求体
URL(网址)=协议://主机地址(IP地址或域名):端口号/路径?参数名=参数值&参数名=参数值
最常见的请求方法
POST:
- POST请求参数放在请求体中(抓包才能看见)---相对安全
- 消息体本身没有长度限制,因此POST请求可以传递任意数量的参数
例如:后台登陆,注册
GET:
- GET请求参数放在URL里(在浏览器地址栏中可以直接看到)
- URL本身有长度限制(每个浏览器不同),参数数量不能过多
例如:前台搜索框
两者都可以向服务器发送请求,并携带参数
请求参数:参数名=参数值;多个参数用&连接
HTTP响应
- 响应行 (响应状态码)
- 响应头
- 响应体
响应状态码:
响应状态码是用数字表示的响应状态,最常见的有4种类型
2xx:表示成功 如200、202、204等
3xx:表示数据路径发生改变,需要重定向。如302,304等
4xx:表示客户端问题。如:404表示页面没找到,403表示访问数据被禁止
5xx:表示服务器错误。如500、503等
响应体:
响应体表示服务器返回给客户端的数据内容。常见的内容:HTML、JSON、TXT、图片等
实例:
Fildder工具使用教程
抓包的概念
一、什么是抓包
上文中我们可以了解到一次网络访问其实质就是客户端与服务器之间通过网络协议进行数据交互的过程,在这个过程中客户端向服务器发送请求和服务器响应客户端的请求,都是通过数据包来传递的。
抓包:就是将网络传输中客户端与服务器交互时发送与接收的数据包进行截获、重发、编辑、转存等操作,我们常借助相关工具进行抓包操作。
二、为什么要抓包
抓包的主要目的是获取网络传输中的原始数据。一旦获取了这些数据,可以进行多种操作:
分析数据传输协议,理解数据如何在网络中传输。
定位网络协议问题,识别和解决网络通信中的错误。
提取数据包中的信息,获取传输过程中的重要数据。
修改和重发数据包,对网络通信过程进行干预。
应用场景:
场景的三种应用场景:
1.定位前后端BUG
- 抓不到请求,定位为前端问题
- 如果有请求但是没响应,那就是后端问题
- 如果有请求也有响应,需要查看响应信息,如果返回相关错误,则需根据错误信息具体分析
2.弱网测试
3.绕过界面限制直接测试服务器
具体可参照博文:什么是抓包-CSDN博客
三、抓包的原理(图解)
抓包工具通过在客户端与服务器之间设置代理服务器(Proxy)的方式,代理服务器充当客户端和服务器之间的中间桥梁。
对客户端来说,原本要发送给服务器的请求发送到代理服务器,代理服务器再将请求转发给服务器;对服务器来说,返回的响应也先到达代理服务器,然后由代理服务器转发给客户端。在这个过程中,代理服务器可以拦截、检查和记录经过它的所有数据包,从而实现抓包的功能。
过程:
- 客户端配置相关代理服务器工具
- 代理服务器获取客户端请求,进行数据记录和分析等相关操作
- 转发给目标服务器
- 代理服务器拦截服务器端响应,进行数据记录和分析等相关操作
- 转发给客户端
Fiddler工具
安装
官网地址:Web Debugging Proxy and Troubleshooting Tools | Fiddler
使用
Fiddler查看发送和接收的数据包
当打开Fiddler工具后,Fiddler会自动为客户端配置代理服务器,通过打开电脑设置查看代理可发现Fiddler自动帮我们设置了一个端口8888的代理服务器(Proxy)
获取客户端请求和服务器相应数据包信息
请求报文区按钮说明:
Headers:显示客户端发送到服务器的 HTTP 请求的 header,显示为一个分级视图,包括 Cookie、设备信息
TextView:显示 POST 请求的 body 部分为文本
SyntaxView:为 Textview 的加强版,查看语法高亮的请求内容。加上了行数标识,鼠标右键的菜单中,相较Textview 多了一些功能,如 Json、XML 格式化,查找替换等
WebForms:显示请求的 GET 参数 和 POST body 内容。特别说明,这里 body 应该是 application/x-www-form-urlen-coded 格式
HEX:用十六进制数据显示请求
Auth:header 中的 Proxy-Authorization 和 Authorization 信息
Cookies:请求发送的 cookies 信息
Raw:将整个请求显示为纯文本
JSON:如果请求的 body 是 Json 格式,就是用分级的 Json 来显示它
XML:如果请求的 body 是 XML 格式,就是用分级的 XML 树来显示它
响应报文区按钮说明:
Transformer:显示响应的编码信息
Headers:显示响应的 header
TextView:使用文本显示相应的 body
SyntaxView:为 Textview 的加强版,查看语法高亮的请求内容。加上了行数标识,鼠标右键的菜单中,相较Textview 多了一些功能,如 Json、XML 格式化,查找替换等
ImageView:如果请求是图片资源,显示响应的图片。左侧灰色区域会显示图片的大小、宽高、文件格式等信息,在下方还可以选择缩放模式:Autoshrink(自动缩放)、Scale to fit(缩放以适应显示区域大小)、No Scaling(无缩放)
HexView:用十六进制数据显示响应
WebForms:响应在 Web 浏览器中的预览效果
Auth:显示响应 header 中的 Proxy-Authorization 和 Authorization 信息
Caching:显示此请求的缓存信息
Cookies:显示此请求的 cookies 信息,私密 P3P Header 信息
Raw:将整个响应显示为纯文本
JSON:如果响应的 body 是 Json 格式,就是用分级的 Json 来显示它
XML:如果响应的 body 是 XML 格式,就是用分级的 XML 树来显示它
Fiddler设置过滤----抓取指定服务器地址的数据
Hosts 第一个下拉选说明:局域网过滤:展示局域网内容
- No Zone Filter:默认选项,不设置区域过滤器。
- show only Intranet Hosts:只显示内网的Hosts,即过滤掉外网的Hosts。此时,只显示URL请求目标服务器在内网的请求。
- show only internet Hosts:与上相对应,只显示外网的Hosts。
Hosts 第二个下拉选说明:广域网过滤:展示广域网内容
- No Host Filter 不设置hosts过滤
- Hide The Following Hosts 隐藏过滤到的域名
- Show Only The Following Hosts 只显示过滤到的域名
- Flag The Following Hosts 标记过滤到的域名
Request Headers :根据请求头信息进行过滤
- Show only if URL contains:仅显示URL中包含指定字符串的请求,字符串可以是URL中的一部分,多个字符串用空格分开。
- Hide if URL contains:仅隐藏URL中包含指定字符串的请求(字符串可以是URL中的一部分,多个用空格分开,可以是正则或完整的URL,同上)。
- Flag requests with headers:标记带有特定header的请求,如果在web session列表中存在该请求,会加粗显示。
- Delete request headers:删除请求中指定的Header字段。
- Set request Header:在URL请求中添加头字段,与上一条对应。前面输入字段,后面输入值。
其余可查看博文:Fiddler工具 — Fiddler过滤器(Filters)详解_fiddler filter-CSDN博客
Fiddler抓取HTTPS
刚下载安装好后,是默认不支持抓取HTTPS协议的,要想抓取HTTPS,需要进行相关设置
Fiddler进行手机APP抓包
① 首先得保证手机和电脑在同一个局域网(连接着同一个 WIFI
),先查看 Fiddler
所在电脑得 IP
地址,可以直接把鼠标悬停在工具栏中的 Online
查看
或者 Win + R
调出 windows 运行窗口
输入 cmd
再输入 ipconfig
查看 IP
地址
② 设置 Fiddler
允许远程连接,点击 Tools
选择 Options...
,再选中 Connections,
勾选 Allow remote computers to connect
允许远程计算机连接到 Fiddler。重启Fiddler
。不重启的话,后面在手机端无法访问Fiddler服务
③ 接着就是为手机配置代理,打卡手机的 设置
,找到 WLAN 配置,
选择当前正连接的 WIFI
,,点击查看 WIFI
的详细信息。点击 WIFI
的代理,选择 手动
,然后设置代理的 IP
和端口。其中,IP
地址为 Fiddler
所在机器的 IP
地址,端口在 Fiddler
中配置的 8888
,如下图
④ 最后为手机下载安全证书,使用手机浏览器访问 Fiddler
服务,根据上图可知,Fiddler
的端口为 8888
(访问地址为 Fiddler
所属主机的 IP
地址加 Fiddler
端口),例如:192.168.1.3:8888
。访问之后如下图:
手机安装证书,打开下载好的证书,凭据用途选择 VPN和应用
,给证书起个名字,确定之后安装完成
证书安装完成后,可以在 系统设置
中搜索 凭据
(或者 CA 证书
,不同手机会有点差别),打开 信任的凭据
,找到刚刚安装的 Fiddler
证书。
以上就是开启手机 APP
抓包的全部设置了,可以打开一个 APP
进行验证。
注意:并不是所有的 APP
的包都能抓到,有些 APP
做了一些防抓包的处理也是很正常的
深入学习可参照:Fiddler 的使用(详细教程)_fiddler使用教程-CSDN博客