一、什么是Fiddler?
Fiddler是位于客户端和服务器端之间的代理,能够记录客户端和服务器之间的所有请求,并且可以针对特定请求进行再一步分析。
Fiddler 是以代理web服务器的形式工作的,它使用默认代理地址:127.0.0.1,端口:8888,也就是说默认监听在安装本机的127.0.0.1::8888,如果需要抓局域网内其他机器的包,需要勾选上 “Allow remote computersto connect” ,允许远程设备连接,会设置监听为0.0.0.0:8888
当Fiddler退出的时候它会自动注销,这样就不会影响别的 程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问,解决的办法是重新启动下Fiddler。
二、Windows下使用Fiddler进行抓包
1. 下载安装Fiddler
打开官网链接:https://www.telerik.com/download/fiddler 进行下载,一路默认安装,不赘述。
2. 设置Fiddler
打开设置:Tools --> Options --> HTTPS
选中【Decrpt HTTPS traffic】Fiddler就可以截获HTTPS请求,第一次会弹出证书安装提示
如果没有弹出安装提示,点击Actions --> Trust Root Certificate,否则可跳过下面一张截图。
安装证书的过程中,可以留意一下红框里面的内容,
DO_NOT_TRUST_FiddlerRoot
就是证书的名称一路选【是】/【Yes】,安装证书。
检测证书是否安装成功,可以点击Actions --> open windows certificate Manager
设置允许远程连接:Tools --> Options --> Connections,留意端口号
重启fillder,使得配置生效,并查看端口监听,命令行中输入
netstat -ano | findstr "8888"
(如果你的端口号不是8888,请自动更换)。3. 设置安卓Android
查看电脑IP,打开命令行,输入ipconfig
,留意IPv4和子网掩码
设置代理,关闭 4G、5G网络,使用WIFI,使得手机和Fiddler在同一局域网。这里以小米手机为例。
长按当前WIFI,选择代理设置
打开手机浏览器,输入【IP:端口】下载证书。在我这个例子中,就应该输入:
192168.18.241:8888
安装成功后,可以在手机的信任凭证中查看到DO_NOT_TRUST_FiddlerRoot(不同手机查看方式不同,可在设置中搜索“信任”)
每连一台fiddler,提供的证书都是不一样的,测试完一个场景,记得在证书管理里删除,因为这个证书只对应这台fiddler,没法用于连其他的fiddler。
4. 进行抓包测试
打开手机中要被抓包的APP,查看抓包内容。
此时Fiddler抓的是PC和APP上的所有请求,如果只想抓APP的,可以在Fiddler上开启过滤功能。打开设置:Tools --> Options --> HTTPS,选择【from remote clients only】
from all processes 抓所有的请求
from browsers only 只抓浏览器的请求
from non-browsers only 只抓非浏览器的请求
from remote clients only 只抓远程客户端请求
感谢阅读!
文章参考:https://blog.csdn.net/michaelwoshi/article/details/114173158 , 感谢大佬!!