在这里插入图片描述

继续跟大家分享另一款网络封包分析工具Fiddler,让我们一起看一下在Fiddler工具下是如何实现抓包、模拟弱网和篡改请求的。

一、Fiddler安装

Fiddler下载地址:https://www.telerik.com/fiddler

点击fiddler tools—>选择Fiddler Classic—>点击Try For Free—>填写信息选择download

在这里插入图片描述

在这里插入图片描述

下载完成后得到FiddlerSetup.exe文件,双击文件,一直点击确定直至安装完成。

二、Fiddler抓包原理

在这里插入图片描述

Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的 程序。

注意:不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

三、Fiddler配置

1、电脑抓包配置

1)系统自动打开代理,点击Tools–Options,点击Connections,页面如下:

在这里插入图片描述

选择Act as system proxy on startup,系统自动打开代理,直接在Edge和Chrome中访问网址抓包即可。

2)手动配置代理,未选择Act as system proxy on startup,点击windows图标—>点击设置—>点击 网络和Internet —>点击代理

在这里插入图片描述

开启手动代理设置按钮,地址配置127.0.0.1(本地),端口和Fiddler中Fiddler listens on port一致,点击保存

在这里插入图片描述

打开浏览器,访问网址,即可在Fiddler中看见相应的请求记录。

2、配置HTTPS证书

打开Fiddler Options->HTTPS 。 (配置完后记得要重启Fiddler)

在这里插入图片描述

选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求,第一次会弹出证书安装提示,若没有弹出提示,勾选Actions-> Trust Root Certificate

在这里插入图片描述

另外,如果你要监听的程序访问的 HTTPS 站点使用的是不可信的证书,则请接着把下面的 “Ignore servercertificate errors” 勾选上。

证书安装提示:

在这里插入图片描述

点击Yes,留意一下红框里面的内容,DO_NOT_TRUST_FiddlerRoot ,这个就是证书的名称。

在这里插入图片描述

点击是。

在这里插入图片描述

点击确定,这样Fiddler证书就已经添加成功了。

在这里插入图片描述

3、移动端抓包配置

fiddler监听端口默认是 8888,你可以把它设置成任何你想要的端口。勾选上 “Allow remote computersto connect” ,允许远程设备连接。

在这里插入图片描述

为了减少干扰,可以去掉 “Act assystem proxy on startup” (windows自身代理)。

首先查看电脑的 IP 地址,确保手机和电脑在同一个局域网内。

在这里插入图片描述

Android设备上的配置:

将 Fiddler 代理服务器的证书导到手机上才能抓这些 APP 的包。

导入的过程:打开浏览器,在地址栏中输入代理服务器的 IP 和端口(即电脑的IP加fiddler的端口),会看到一个Fiddler 提供的页面,然后确定安装就好了

在这里插入图片描述

打开 WiFi 设置页面,选择要连接的 wifi ,并且长按,在弹出的对话框中,选择“修改网络”。在接下来弹出的对话框中,勾选“显示高级选项”。

在接下来显示的页面中,点击“代理”,选择“手动”。代理服务器主机名设为 PC 的 IP ,代理服务器端口设为 Fiddler 上配置的端口 8888,点”保存”。

在这里插入图片描述

iOS设备上的配置:

苹果手机上的配置其实跟 Android 手机基本是一样的。如图:

在这里插入图片描述

至此已配置完成。

四、Fiddler使用

1、主界面:

在这里插入图片描述

2、自定义请求

Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求

在这里插入图片描述

Parsed模式下你只需要提供简单的URLS地址即可(如下图,也可以在RequestBody定制一些属性,如模拟浏览器User-Agent)

3、拦截与修改

在这里插入图片描述

如图,箭头所指的位置时可以点击的。共三种状态:

空白:不设置拦截。

箭头向上:表示拦截请求。此时客户端的请求是无法直接到达目标服务器的,需要手动控制。

箭头向下:表示拦截响应。此时目标服务器的响应是无法直接到达客户端的,需要手动控制。

还有一种拦截请求的方式

在命令行中输入命令:

bpu www.baidu.com (拦截请求)

bpuafter www.baidu.com(拦截响应)

这种方法只会拦截www.baidu.com

拦截请求并且修改请求的操作步骤:

拦截请求并修改:

在这里插入图片描述

如图,操作步骤:

1)设置断点请求,访问网页

2)点击对应的会话

3)查看请求报文信息

4)修改请求内容

5)完成断点,放行,把该请求发送给目标服务器。

图中Break On Response表示把请求发给服务器,但是服务器的响应被fiddler拦截,此时

可以修改响应内容(和断点响应类似)。

拦截响应并修改:

和断点请求操作类似,只是在响应区域修改报文信息即可。

在断点响应时,请注意超时时间。

4、过滤

1、域名过滤,只显示特定域名的记录:

在这里插入图片描述

*.baidu.com表示所有的百度二级域名会话;

*baidu.com表示一级域名+二级域名的会话。设置好了后一定要点击Actions生效;

2、类型过滤,一般对各种图片、CSS、JS这类的静态素材也不需要看的情况下,直接全部过滤掉

.*.(bmp|css|js|gif|ico|jp?g|png|swf|woff)

在这里插入图片描述

3.根据返回状态码,比如只想显示200的状态,其他的不显示

在这里插入图片描述

5、模拟弱网

打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多

在这里插入图片描述

弱网原理:

Rules—>Cutomize Rules打开CustomRules.js 文档

在这里插入图片描述

在文件中搜索关键字,m_SimulateModem

在这里插入图片描述

让我们来分析一下这几行代码:

首先来判断m_SimulateModem是否为true,也就是是否设置了弱网模式。

如果为弱网模式。则分析代码

oSession[“request-trickle-delay”] = “300”; 注释的也很明白,Delay sends by 300ms per KB uploaded.上传1KB需要300ms,转化一下上传速度:1Kb/0.3s = 10/3(KB/s)

如果你想设置上传的速度为50KB/s,你则需要设置Delay 时间为 20ms

同样的方法,也可以限制上传的速度,调整oSession[“response-trickle-delay”]即可。

6、内置命令
?

问号(?)后边跟一个字符串,Fiddler 将所有会话中存在该字符串匹配的全部高亮显示(下图输入的是 ?google.com)

匹配的字符串是 Protocol、Host 和 URL 中的任何子字符串。

在这里插入图片描述

> 和 <

大于号(>)和小于号(<)后边跟一个数值,表示高亮所有尺寸大于或小于该数值的会话。

比如我输入 >5000,按下回车后结果如下:

在这里插入图片描述

可以直接输入 >5k 表示你想高亮所有尺寸大于 5KB 的会话。

=

等于号(=)后边可以接 HTTP 状态码或 HTTP 方法,比如 =200 表示高亮所有正常响应的会话。

下图输入了 =POST,表示希望高亮所有 POST 方法的会话:

在这里插入图片描述

@

@ 后边跟的是 Host,比如我想高亮所有鱼C论坛的连接,我可以 @bbs.fishc.com

在这里插入图片描述

bpafter

bpafter 后边跟一个字符串,表示中断所有包含该字符串的会话。

比如我想中断所有包含 fishc 的响应,那么我输入 bpafter fishc,然后在浏览器输入 bbs.fishc.com,发现并没有收到服务器响应,因此都给 Fiddler 断下来了:

在这里插入图片描述

bps

bps 后边跟的是 HTTP 状态码,表示中断所有为该状态码的会话。

bpv 或 bpm

bpv 或 bpm 后边跟的是 HTTP 方法,表示中断所有为该方法的会话。

bpu

跟 bpafter 类似,区别:bpu 是在发起请求时中断,而 bpafter 是在收到响应后中断。

cls 或 clear

清除当前的所有会话。

g 或 go

放行所有中断下来的会话。

hide

将 Fiddler 隐藏。

show

将 Fiddler 恢复。

urlreplace

urlreplace 后边跟两个字符串,表示替换 URL 中的字符串。比如 urlreplace baidu fishc 表示将所有 URL 的 baidu 替换成 fishc。

温馨提示:直接输入 urlreplace 不带任何参数表示恢复原来的样子。

start

Fiddler 开始工作。

stop

Fiddler 停止工作。

quit

关闭 Fiddler。

select

select 后边跟响应的类型(Content-Type),表示选中所有匹配的会话。

比如希望 Fiddler 选中所有的图片,可以使用 select image;
而 select css 则选中所有的 css 文件。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐