Fiddler 抓包实战:抓取已删除好友微信ID号码(一):Fiddler 理论基础
- 陈大剩
- 2024-09-18 23:59:27
- 316
背景
话说在某天,悠闲逛咸鱼时?发现居然可以加回删除的好友号?带着好奇与 “这伙” 技术人员咨询了一番。
从聊天中得知:
- 有红包转账记录(即使退回没收也可以)或收藏夹里有删除好友信息;
- 好友期间登陆过电脑微信端;
- 曾经是好友,对方微信号屏蔽搜索的加不到;
- 没已上4点的,没有换过手机,手机没回复出没卸载微信,需要电脑远程找回;
只要符合这几个条件,再加 35 元现金,便可以重新发起好友申请,岂不是??? 随后我便探索了一番(也就大几个晚上),终于找到窍门。
这篇文章是 Fiddler 工具入门文章,有基础的可以不看,抓包实战 不会再来瞅一眼这些字段也不迟,此节主要是基础。
安装
下载地址:https://www.telerik.com/download/fiddler
填写好电子邮箱
和国家地区
点击Download for windows
就可以下载了
这个
Fiddler
工具是基于.NET Framework
的 ,因为Fiddler
是c#
开发的,如果是比较老的windows系统
要保证运行环境!
Fiddler
的安装方法也很简单 获取到安装包之后,直接选择安装路径 或 无脑下一步就可以了!
核心功能区讲解
核心功能区包括:
- 菜单栏
- 工具栏
- 会话列表栏
- 快速执行命令栏
- 状态栏
菜单栏
主要的功能其实很简单主要又包含file(文件)、edit(编辑)、Rules(规则)、 Tools(工具) 、View(视图) Help(帮助)
file菜单
主要包含新建视图、加载一个保存好的抓包会话文件、保存所有会话列表数据到一个.saz文件中
等等.edit菜单
主要包含一些编辑的功能,例如对会话的:复制 粘贴 拷贝
等操作Rules规则菜单
所谓规则
指的也就是抓包
的规则, 按照设置的一系列规则来显示抓取的数据会话常见勾选设置有:Hide CONNECTs(把建立通道连接隐藏了)
的规则Hide 304s(也就是304相关的会话也隐藏了)
的规则Hide image Request (也就是隐藏和图片相关会话)
的规则- 其他
Rules规则菜单
中的规则选项大家可以自行尝试!
Tools(工具菜单)
这个菜单多数是针对fiddler
这款工具本身的一些网络设置View(视图菜单)
这个菜单是针对fiddler
显示界面与视图的一些设置,如果有些工具栏和按钮没有显示,就可以在这里来查找!Help(帮助菜单)
一些关于fiddler和网络
的帮助信息文档,有兴趣的可以去查查看!
工具栏
工具栏上的快捷按钮,也是平常我们在抓包过程当中经常会使用到的,这里列举一些常会用到的工具按钮
主要分为:
- WinConfig: windows 使用了一种叫做“AppContainer”的隔离技术,使得一些流量无法正常捕获,在 fiddler中点击 WinConfig 按钮可以解除这个诅咒,这个与菜单栏 Tools→Win8 Loopback Exemptions 功能是一致的
- 气泡按钮: 给session list中的会话添加备注
- Replay回放按钮:当我们需要再一次对某个请求进行发送的时候,Fiddler提供了回放的功能可以再一次发送请求。
- X: 清空监控面板(Ctrl + X);可以清除面板上全部或某些请求。
- Remove all 删除所有;
- images 删除所有图片;
- CONNECTs 删除所有CONNECTs的请求;
- Non-200s 删除所有不是200的请求;
- Non-Browser 删除所有非浏览器请求;
- Duplicate response bodies 删除所有重复响应体的请求;
- Go按钮:是调试debug按钮,让请求断点继续往下走。
- Stream:表示用来模式切换,在流模型和缓存模式下进行切换。
- 流模式:理解成为一种实时通信的模式,有请求就有返回,也就是实时返回
- 缓冲模式:等待所有的请求都到一起在返回,也就是等所有的数据都准备好了以后才返回给客户端
- Decode:将http请求的东西解压出来,方便阅览。
- Keep All Sessions:Fiddler默认保存 All sessions,需要注意的是Fiddler保存的会话状态越多,占用的内存越大。
- Any Process:过滤请求;(靶心形状按钮是帮我们过滤不想看到的进程发出的请求,只保留我们要看到的进程的请求。方法是比如只想看到谷歌浏览器请求,把靶心拖动到谷歌浏览器放开即可。)
- Find:查找会话,并默认黄色标识该会话。
- Save:保存按钮可以对捕获到的会话进行保存。
- 截图:照相机按钮是保存截图功能,五秒之后帮我们把截图保存下来。
- 计时器:计时器,左键单击一下开始,再单击一下停止,右键清零。
- Browse:快速启动浏览器(也可选择下拉框中别的浏览器:IE,火狐,谷歌,edge等)。
- Clear Cache:清除 WinINET 的缓存,按住 CTRL 键点击可以清除已经存在的 cookies。
- TextWizard:此工具可以将某一编码过的或者未编码过的字串拿到此处解码和编码。
- Tearoff:此功能用来将右边栏里的请求和响应部分给单独拆成一个新窗口,方便视察。
- online:鼠标悬停显示本机的一些ip信息。
会话列表 (Session list) 详解
快速执行命令栏
这个输入框的作用就是允许用户快速输入并启动一些脚本命令!
比如点击 Alt+Q
可快速将焦点设置为快速执行命令框
如果 Fiddler
未处于活动状态,请先按Ctrl+ALT+F
激活 Fiddler
在快速执行命令框
中,按 Ctrl+I
会在快速执行命令框
中插入当前所选会话 URL
命令 | 对应栏位 | 描述 | 案例 |
---|---|---|---|
? |
all |
问号后边跟一个字符串,可以从会话列表 中筛选出包含这个字符串的所有请求 |
?baidu |
> |
Body |
可以从会话列表 中筛选出请求大小的会话,也就是大于 这个数字请求 |
>100 |
< |
Body |
可以从会话列表 中筛选出请求大小的会话,也就是小于 这个数字请求 |
<100 |
= |
Result |
等于号后面跟数字,可以从会话列表 中筛选出对应的HTTP状态码的会话 |
=404 |
@ |
Host |
@后面跟Host,可以从会话列表 中筛选出相应的域名 |
@www.baidu.com |
select |
Content-Type |
select后面跟响应类型,可以从会话列表 中筛选出相关的会话类型 |
select image |
cls |
All |
清空当前所有请求 | cls |
dump |
All |
将所有请求打包成.saz压缩包 ,默认会保存到C:\Users\用户名\Documents\Fiddler2\Captures目录下 |
dump |
start |
All |
开始监听请求 | start |
stop |
All |
停止监听请求 | stop |
状态栏
Fiddler 状态栏功能对于前端页面的测试、HTTP请求与响应的查看有这非常大的帮助,也大大减少了前端页面BUG调试上的一些困难!
Fiddler
中辅助标签工具栏算是用得比较多的,因为经常要在这里查看抓取数据包的详细信息!
主要分为:
- Statistics 静态分析:Http或Https请求的性能和其他数据分析,如DNS解析时间,TCP/TP建立连接的时间(TCP三次握手的时间)、SSL连接的时间(针对https请求)等信息。
- Inspectors 检察器:直接可以双击会话打开检查器,或选择会话后点击检查器。以不同的形式展示请求或部分请求报文、响应或部分响应报文。
- AutoResponder 自动响应器:可用于拦截某一请求。
- Composer 设计器:设计请求,修改请求参数,进行简单的接口测试。
- FiddlerOrchestra :远程调试 Web UI 调试【目前在测试阶段】。
- FiddlerScipt 请求脚本:类似一个中间件,可以动态加上一些脚本。
- log 日志信息:显示 fiddler 运行的一些日志信息。用来收集日志消息字符串,这些字符串是由扩展、FiddlerScript或者Fiddler本身生成的
- Filter 过滤器:主要作用就是用来过滤请求,抓有效请求。
- TimeLine 请求响应时间:显示指定的资源从服务端传输到客户端的响应时间!
重点讲解一下:
AutoResponder
它允许你拦截
指定规则的请求,并把响应
结果重定向
到一个本地资源 或 直接使用Fiddler
内置的资源,从而代替服务器来自定义一个你想要的响应
。 说白一点就是篡改响应
具体操作步骤:
- 在AutoResponder面板下,点击,单击选择需要拦截的请求,复制请求的URL(请求右键 >> Copy >> Just Url);
- **粘贴至右侧面板Rule Editor(或者左键按住,并拖动需要请求的url到右侧面板,此时url自动填充在Rule Editor处;或者直接去网页复制相应图片位置等) **
- 设置响应的内容,可以选择Fiddler的内置响应或者是重定向至用户本地文件(或者点击规则,鼠标右键,选择Edit Response,进行自定义响应)
- 同时选中 Enable rules(使用规则)和 Unmatched requests passthrough(放行未匹配的请求)
具体如下
注意:同时选中 Enable rules(使用规则)和 Unmatched requests passthrough(放行未匹配的请求)
保存后重新请求
www.baidu.com 变成了一个吉他文件
Composer
它可以允许我们自定义请求报文
来发送到服务端
,当然也可以手动创建一个新的请求,也可以从会话列表
中拖拽一个现有的请求去发送!
在Parsed(解析模式)
下我们只需要提供简单的URL
地址就可以了, 并且还可以在RequestBody
中去定制一些属性,例如模拟浏览器消息头User-Agent
但是Composer
通常在我们开发项目当中用于接口测试
也是经常用于测试一些api接口
的最好方法!
当然有时候也可以通过Composer
来校验后端接口的严谨,从而跳过一些前端的限制,去直接访问后端代码的逻辑!
子选项卡具体解释如下表:
选项卡 | 描述 |
---|---|
Parsed |
表示已经被解析的整个HTTP请求,包括请求行,请求头和请求体,说通俗一点也就是最直观的看到Request请求 的详细展示 |
Raw |
按照真实原生HTTP 请求标准来进行展示的格式! |
Scratchpad |
可以存储已经收集好的HTTP请求,可存储多个不同的请求, 你可以理解为请求回放功能, 鼠标连续点击三次即可选中要选择的请求来进行发送!【可以收藏请求重启不会清0】 |
Options |
设置一些请求选项 |
流程如下:
Filter 过滤器
Filters
本意就是过滤
的意思, 它的主要作用就是用来过滤
请求用的, 要知道有的时候 会话列表
中或存在大量的请求会话
, 那么有些时候会根据用户
的条件
进行一个会话筛选
, 也就是说通过过滤规则
来过滤掉那些不想看到的请求!
Filters
选项卡也是在我们抓包过程中使用频率非常高的,其中功能也比较多,这里我把它内部的功能逐一拆解分成7个部分来进行讲解!
注意:需要打开 use filter 才能开启过滤。
host 主机过滤
- Show only Intranet Hosts:仅显示局域网的请求
- Show only Internet Hosts:仅显示广域网的请求
- No Zone Filter:无域限制(默认)
- No Host Filter:无主机限制(默认)
- Hide the following Hosts:隐藏输入到下面文本框的主机(域名或者IP)的请求(可以选择请求,单击右键,Copy >> This Column 的方式复制请求的主机)
- Show only the following Hosts:仅显示输入到下面文本框的主机(域名或者IP)的请求
- Flag the following Hosts:含有下面文本框的主机(域名或者IP)的请求做标记(即加粗显示)
Client Process 客户端进程
- Show only traffic from:仅显示某一进程的请求
- Show only Internet Explorer traffic:仅显示IE浏览器发出的请求
- Hide traffic from Service Host:隐藏来自service host(即由svchost.exe进程)发出的请求
Request Headers 请求头
- Show only if URL contains:仅显示url中包含输入的字符串的请求
- Hide if URL contains:隐藏url中包含输入的字符串的请求
- Flag requests with headers:标记请求头中有指定内容的请求
- Delete request headers:删除请求头中的指定内容
- Set request header:设置请求头中添加指定的内容
Breakpoints 断点
- Break request on POST:在POST请求中设置断点(请求前设置断点)
- Break request on GET with query string:在带有请求参数的GET请求中设置断点(请求前设置断点)
- Break on XMLHTTpRequest:在ajax请求中设置断点(请求前设置断点)
- Break response on Content-type:在响应中含有指定Content-type的请求中设置断点(响应后设置断点)
Response Status Code 响应状态码
- Hide success(2xx):隐藏响应状态码为2XX的请求
- ** Hide non-2xx:隐藏响应状态码非2xx的请求**
- Hide redirects(300, 301, 302, 303, 307):隐藏状态码为300、301、302、303、307的重定向请求
- Hide Authentication demands(401,407):隐藏状态码为401,407的响应(需要用户确认证书的请求)
- Hide Not Modified(304):隐藏状态码为304的响应
Response Type and Size 响应类型和大小
Show all Content-Type
这一项比较常用, 意思为显示所有指定Content-Type类型的请求
其中的选项描述如下表:
功能 | 描述 |
---|---|
Show only IMAGE/* |
仅显示响应类型为图片的请求, 即响应header中Content-Type=IMAGE/的请求,*为通配符 |
Show only HTML |
仅显示响应类型为HTML 的请求。 |
Show only TEXT/CSS |
仅显示响应类型为text/css 的请求。 |
Show only SCRIPTS |
仅显示响应类型为Scripts 的请求 |
Show only XML |
仅显示响应类型为XML 的请求。 |
Show only JSON |
仅显示响应类型为json 的请求。 |
Hide IMAGE/* |
隐藏所有响应类型为图片的请求。 |
其他功能项如下表
功能 | 描述 |
---|---|
Hide smaller than |
隐藏小于指定大小响应结果的请求,大小可以在 Inpsectors 中响应结果部分的 Transformer 中查看 |
Hide larger than |
隐藏大于指定大小响应结果的请求 |
Time HeatMap |
时间的热图。 |
Block script files |
阻止返回正常JS文件。如果响应是脚本文件,那么响应 404。 |
Block image files |
阻止返回正常图片文件。如果响应是图片文件,那么响应 404 |
Block SWF files |
阻止返回正常SWF文件。如果响应是SWF 文件,那么响应 404。 科普一下swf(shock wave flash) :是Macromedia公司的 目前已被adobe公司收购)公司的动画设计软件Flash的专用格式 |
Block CSS files |
阻止返回正常CSS文件。如果响应是 CSS 文件,那么响应 404 |
以上这些功能可以测试一些资源等加载失败的情况下页面的展示情况, 前端必备哦!
Response Headers 响应头
功能详解如下表:
功能 | 描述 |
---|---|
Flag responses that set cookies |
会话列表的响应中有cookies信息的加上标识斜体 |
Flag responses with headers |
会话列表里标记响应中带有特定header的请求 即加粗。 |
Delete response headers |
会话列表里删除响应信息中,就是说没有发给客户端之前就把这些响应头删除掉! |
Set response header |
在响应中添加header字段, 也就是自定义响应头信息,再发给客户端 |
抓包流程
安装证书
fiddler
默认是只抓取http
协议,如果会话列表
中的Host
列中出现Tunnel to...
字样都说明是证书
的问题, 这种就不能抓取到我们想要的会话
。
勾选
- Ignore server certificate errors(unsafe) 忽略服务器证书错误(不安全)
- check for certificate revocation (证书撤销检查)
信任证书
证书安装了之后 还要设置一下信任才行!
直接选择Tools--->Options---->HTTPS---->Actions--->Trust Root Certificate
信任证书后就可以开始抓包了
其他设备抓包
Fiddler 不仅可以抓web页面的 HTTP/HTTPS 的数据报文, 也可以抓取其他设备抓包。
但是必须处于同一个网络当中, 并且其他设备网络代理必须设置为fiddler
,当其他设备经过Fiddler
这一层服务!
勾选
- Allow remote computers to connect(允许远程计算机连接)
安装证书
在其他设备
上打开(自带)的浏览器
,输入刚刚配置的ip+port
来下载证书,
注意: 因为 Fiddler 默认生成策略 中不包含
Authority KeyID
字段,安卓 和 IOS 设备证书需要通过CertMaker for iOS and Android
插件生成 CA 证书。
信任证书
其中安卓设备如果多次出现证书错误则需要将证书写入系统中,具体操作参考 Android 7.0+模拟器Fiddler抓包详细教程_安卓模拟器抓包-CSDN博客
ios 设备需要在信任中心添加信任,否则无法抓包。
中文包
菜单汉化中文包:
通过网盘分享的文件:Fiddler汉化插件(1).zip
链接: https://pan.baidu.com/s/1exqVtpW0TWS_IPx22D5A1A 提取码: 46ue