【看好了】如何使用fiddler实现手机抓包,Filters过滤器!

一、Fiddler与其他抓包工具的区别

 1、Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要"无刷新修改",如果刷新了页面,所有的修改都不会保存;

 2、Wireshark是通用的抓包工具,能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,但如果是TCP、UDP协议可以用wireshark;

 3、Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件);

而Fiddler 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。

二、Fiddler的工作原理

 Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据。

 既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,所以web客户端和服务器的请求如图1所示:

图1(web客户端和服务器的请求过程)

 注:使用Fiddler的话,需要先设置浏览器的代理地址,才可以抓取到浏览器的数据包。而很方便的是在你启动该工具后,它就已经自动帮你设置好了浏览器的代理了,当关闭后,它又将浏览器代理还原了。当然如果发现没有自动设置浏览器代理的话,那就得自己动手去浏览器进行设置代理操作了。(可自行百度每个浏览器是如何设置代理的),反正一定要设置相应的代理,否则fiddler是无法捕获到HTTP请求的。

三、使用fiddler实现手机抓包

1.说明

手机上无法直接查看网络请求数据,需要使用抓包工具。Fiddler是一个免费的web调试代理,可以用它实现记录、查看和调试手机终端和远程服务器之间的http/https通信。

fiddler没有手机客户端,都是安装在PC上,要实现对手机上的程序抓包,则需要对PC上的fiddler和手机端做一些配置。

2.步骤

2.1 PC端fiddler配置---->按照HTTPS证书

手机上的应用很多涉及到个人信息,采用比较安全的HTTPS加密过,而fiddler默认只捕获http会话而不抓取HTTPS报文,导致打开fiddler后就打不开https网页(比如百度)

解决办法:打开Fiddler->Tool->Fiddler Options->HTTPS tab,勾选上并Capture HTTPS CONNECTs(捕获 HTTPS 连接)和 Decrypt HTTPS traffic (HTTPS 请求解密),并安装证书(首次使用无证书,会弹出是否信任fiddler证书和安全提示,直接点击yes就行)。

2.2 PC端fiddler配置---->允许手机远程连接

如果想要捕获手机上的通信数据,就需要手机连接上Fiddler代理,而Fiddler默认是不允许其他设备进行连接的

解决办法:点击 Fiddler->Tools -> Options,在 Connections 面板选中 Allow remote computers to connect 允许其他设备连接(此操作需重启Fiddler生效)

2.3 查看电脑ip

电脑ip地址可通过cmd命令行输入ipconfig查询

2.4 手机端配置---->接入电脑所在的网络

需要在移动终端(手机或pad)上指定代理服务器为Fiddler所在主机IP(需要处于同一网络),端口默认8888。

要保证手机和安装有fiddler的电脑处在同一局域网内,手机能ping通电脑。

更改手机无线网的代理方法:打开系统设置-WLAN-长按WiFi接入的网络-点击高级选项-代理选择手动,主机名输入fiddler的电脑ip地址及端口号,保存即可

2.5 手机端配置---->手机安装根证书

在手机上需要安装Fiddler根证书,因为Fiddler是通过自己生成的证书对网络请求重新签名进行https会话解密的,如果不安装证书的话只能抓取HTTP请求。

手机和电脑连接同一个网络,打开手机浏览器,输入Fiddler Server地址http://ipv4.fiddler:8888/(因为fiddler装在PC上,所以Fiddler Server地址就是PC的IP地址,带上端口号8888,我的是http://192.168.0.128:8888/), 跳转到 Fiddler Echo Service 证书下载页,点击FiddlerRoot certificate下载-为证书命名-安装;

2.6 抓包测试

在手机浏览器上进行搜索,查看fiddler中是否有记录(如下所示,抓包成功)

2.7 还原手机状态

抓包结束后,需要手动还原手机状态,方法如下(不同机型可能有些微差别):

(1) 停止电脑对手机的网络监控:系统设置-WLAN,长按wifi修改网络,高级选项找到代理,去掉手动代理即可;

(2)删除手机中证书:安卓系统设置 系统 设备安全 受信任的凭据 用户 ,点击证书删除即可;

(3) 删除手机上密码:手机系统---安全---密码,删除系统密码即可。

四、Filters过滤器

因为抓到的请求比较多,我们看得眼花缭乱,此时可以进行过滤,只显示我们想要的(如下图所示,只显示host 是api-dev.XXXX.cn 的请求) ;也可以选择进程名称和端口,只显示该进程的请求。

Hosts配置说明:

(1)第一项有三个选项,不做更改:

"No zone filter"

"Show Only Intranet Hosts"

"Show Only Internet Hosts"

(2)第二个选项是只监控以下网址,如只监控百度,在下面的输入框里填上 www.baidu.com

"No Host Filter"不设置hosts过滤

"Hide The Following Hosts"隐藏过滤到的域名

"Show Only The Following Hosts"只显示过滤到的域名

"Flag The Following Hosts"标记过滤到的域名

(3)文本框内输入需要过滤的域名,多个域名使用";"分号分割

fiddler默认会检查http头中设置的host,强制显示http地址中的域名

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

相关推荐
醉城夜风~26 分钟前
CSS元素显示模式(display)
前端·css
AI大模型-小华1 小时前
Codex 三方充值快速入门指南
java·前端·数据库·chatgpt·ai编程·codex·chatgpt pro
做前端的娜娜子3 小时前
同一链接实现 PC Web 与移动 H5 自适应
前端·掘金·金石计划
小帅不太帅4 小时前
架构没变、规模没变,DeepSeek V4 Flash 正式版凭什么暴涨 47 分?
前端·aigc·deepseek
jarvisuni4 小时前
DeepSeekFlash前端依旧拉垮,而且变慢了很多!
前端·javascript·算法
卷福同学5 小时前
AI编程出海第二步:验证关键词能否做站
前端·人工智能·后端
赵庆明老师6 小时前
Vben精讲:21-详解web-antd:tsconfig.json
前端·json·vim
冷凝娇6 小时前
【Postman】2026总结
测试工具·postman
天才测试猿6 小时前
实例介绍:Unittest框架及自动化测试实现流程
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例