抓包神器:Fiddler Everywhere

学习完HTTPS,并且使用了Wireshark进行抓包分析,本文再来体验一个抓包神器:Fiddler其主要职责是抓取应用层报文,并且在抓移动端报文特别方便,让我们赶紧发车。

本文实际使用的是Fiddler Everywhere,但是为了描述简单,后文都简称为Fiddler。

一、Fiddler简介

你可以选择下载 Fiddler 的经典款,也可以下载最新的 Fiddler Everywhere 。我选用了后者,因为它是 Fiddler 的全平台版本,集成了 Fiddler 和 postman 两者功能的新版本,更重要的是,页面更加漂亮了!

官网下载地址:https://www.telerik.com/download/fiddler-everywhere

我们下载免费版本即可,免费版本和收费版本没有功能上的差别,在团队合作方面收费版本更加强大,但我们个人使用已经足够。

Fiddler Everywhere 是可以运行在任何浏览器、任何系统、跨平台( Windows 、 Mac 、 Linux )的一款 Web 调试代理工具。它记录了计算机和 Internet 之间的所有 HTTP(S) 通信,可以检查和编辑通信,并 Mock 请求以及修改响应返回的能力。

这里划一个重点:代理,我们之前学习代理的时候说过,在代理的小天地里可以做很多事情,我们暂时先说到这里,继续看这个工具。

安装好之后,我们看到的初始页面是这样的:

主要分为了三大区域:

  • 区域①:侧边栏,主要用于是存放 session 、 request 的区域。(类似于 postman 的左侧栏)

  • 区域②:拦截请求以及发送请求的区域。(全是HTTP或HTTPS的请求摘要)

  • 区域③:用于显示请求和响应以及自动处理请求的区域。(详细的请求报文和响应报文)

值得注意的是,工作区②中,上面一行有个 Live Traffic ,用来打开或关闭抓包监听。

还有一个 Composer ,就是一个翻版的 postman ,这里更加方便的地方是可以针对抓取到的报文进行编辑和重新发起请求,可谓是一个调试神器!下文会介绍。

二、Fiddler设置

在不进行任何配置时,直接打开 Live Traffic 无法抓取到任何HTTPS报文,右侧栏上方可以看到这样的提示:

那么如何能用上fiddler的抓取HTTPS报文呢?我们点开箭头指向的链接,跳出来一个新的提示:

我选择相信,又跳出来一个新的弹窗,是一个安全警告:

让我们安装此根证书,并且告知了我们风险,如果读者朋友对之前PKI技术和证书相关的知识已经理解的话,想必会很容易理解这里的操作。这里我们选择确认,则会在操作系统中安装此根证书并信任它(通过win+r打开certmgr.msc查看):

好了,此时就大功告成了,我们来对HTTPS网站抓包,我们对https://www.oursnail.cn/做下抓包,此时就可以正常抓取到HTTPS报文了:

三、Fiddler基本原理

我们点开设置看一个配置项:

  • 8866是端口号,在设置代理对象时需要设置成与这个一致,它的取值范围是0~65535;

  • 设置Act as system proxy on startup时,可以抓取电脑的网络请求;

  • 设置Allow remote computers to connect时,可以抓取设置代理对象(比如手机)的网络请求;

可以看到,fiddler在我们本地启动了一个代理,所有的请求和响应都将先经过它,这一点我们可以看电脑代理的情况。

首先关闭fiddler的 Live Traffic ,打开电脑设置,搜索”代理“可以看到如下页面:

但是当我打开fiddler的 Live Traffic 后,即可看到:

其原理正是利用了中间人攻击的问题,只是这里我们需要去相信这个中间人(Fiddler),我们将之前中间人攻击的流程图放在这里,即fiddler的工作原理:

四、调试神器:Composer

刚才提到了 Composer ,我们说它是在 Fiddler 中集成了一个 Postman 功能, Fiddler 更进一步,将两者功能进行了无缝的衔接,我们来看看此工具如何使用,我对某个网站的搜索接口进行抓取:

下面我可选中报文后右击选择 Edit in Composer :

下面即可在新打开的页面里面修改请求参数重新发起请求了,我们来看下新打开的页面:

比如我修改 keywords 字段,我想吃马卡龙,填入马卡龙对应的url编码后的值 %E9%A9%AC%E5%8D%A1%E9%BE%99 ,点击execute执行此请求(记得修改参数后点下后面的√使其生效):

可以看到对端返回的是马卡龙相关的商品,这一点在做测试的时候就会十分方便了,无需重复构建请求参数,不失为是一个调试神器!到这里我仿佛知道为什么叫做 Composer 了,让我们像一个优雅的创作者一样修改请求头或请求体做HTTP请求的一些测试。

五、Fiddler抓取手机端报文

这里来到了本文的重头戏,很多读者朋友对在移动端如何抓包比较头疼,本文以在苹果手机端抓包为例,使用fiddler工具提供一个抓包思路和过程。

电脑和手机连入同一局域网,比如我这里,将手机wifi和电脑wifi都连接同一个路由器,这样它两就在同一个局域网下了。

首先看下本机的局域网IP,windows平台可以打开cmd黑窗口,输入ipconfig即可看到:

因为电脑连接的是wifi,故看最后一个“无线局域网适配器WLAN”即可,可以看到IPv4地址是192.168.101.2。因为Fiddler的代理地址就是http://127.0.0.1:8866,因此相对于手机而言地址就是http://192.168.101.2:8866,手机和电脑关系如下:

在设置手机代理地址之前,我们需要先打开fiddler相关配置:

下面就是最关键的一步,配置手机网络的代理,我以iphone手机为例,打开《设置》,找到《无线局域网》这一项,点击我们连接的无线网那一行,进入下面左侧页面,可以看到最后一项:配置代理,点进去,选中手动,并且填上电脑的局域网IP和代理的端口号,详情见下面两张图:

图1图2

此时我尝试访问https://www.baidu.com首页,会提示警告,原因是咱们的手机并没有安装和信任fiddler的证书,自然会有这样的警告了。并且每点开一个页面都有这样的警告:

图3图4

我反复实验了下,即使我不依不饶点击访问此网站,强行访问,可能直接提示页面无法连接。如何处理呢?我们先把证书的事情搞定。

第一步是打开刚才的http://192.168.101.2:8866地址,点击下载FiddlerRoot certificate证书,直接提示已下载,让你去设置中安装,打开设置,就可以看到一个选项叫做《已下载描述文件》。

图5图6

进入《已下载描述文件》点击安装即可:

图7图8

问题来了,代理和证书都搞定了,但是我重新打开百度首页,仍然提示《此连接非私人连接》的警告,这个时候,网上的一些教程实际上少设置了一步,我们需要去设置中,搜索下《证书》两个字,选中《可信的证书》,到最后一行打开《证书信任设置》。打开对Fiddler证书的完全信任:

图9图10

为了方便验证,我在手机浏览器中输入:oursnail.cn的域名,会访问到商城项目(如果读者朋友看到这篇文章较晚,可能商城项目已关闭,不用慌张,你可以选择任何的HTTPS网站去做试验),可以看到,抓到的包确实就是我在手机上操作的请求。

图11图12

六、善用过滤器

由于报文众多,我们要学会过滤,如下图,会涌进来很多的报文:

比如我这里知道商城的调用接口是:https://api.oursnail.cn/yummyfood-api/items/search,是根据关键字keyword字段进行的条件搜索,那么我可以用keyword这个字段来搜索下:

如果条件合理,那么可以精准找到相应的报文,可谓是十分方便。

如果需要对HTTPS报文进行捕获和分析,那么就拿起Fiddler吧!平时工作和学习中将Wireshark和Fiddler组合使用,基本可以满足所有场景。

本文完,下篇见!

  • 15
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值