本文中的相关版本环境如下:
system version:Windows 10 专业版
fiddler:fiddler4(v5.0.20194.41348 for .NET 4.6.1)
1、fiddler抓包的原理就是通过代理来进行的,所以 被测终端(不局限于手机) 需要和 安装fiddler的电脑 在同一个局域网中(手机和电脑在同一个局域网中)
2、开启fiddler的远程连接,fiddler主菜单 Tools -> Options…-> Connections标签页,选中 Allow remote computers to connect,并设置端口号为8888(8888是默认的端口号,可以自己随意设置,只要你当前设置的端口号没有被其它程序所占用即可),等会设置手机代理时需要。设置好后重启fiddler保证设置生效。设置如下:
3、查看本地电脑的IP地址,在cmd命令行中输入ipconfig:
4、在手机侧设置代理(以小米手机10 为例)
设置 -> WLAN -> 找到链接的wifi -> 点击右边的小箭头 ,示例图如下:
然后 选择代理为 手动,填入代理服务器为自己电脑IP(也就是本文中的 192.168.13.125),端口填入在fildder设置中的8888(在fildder设置什么端口,手机这里就填写什么端口)示例截图如下:
其它手机的设置大同小异 没啥难度的,这里是以Android手机举例,如果是iPhone则可以在对应wifi的设置中直接配置HTTP代理
5、现在就可以开始抓包了:
在手机上对APP进行操作,从fiddler上就能捕获到app对应发送的网络请求信息了。(如果手机断网,那么fiddler设置好后,退出重启一下fiddler工具试试)
6、注意点:
①、fiddler可以抓安卓和苹果的请求,用完之后记得关闭手机上的代理设置,否则可能会出现手机无法上网的问题
②、目前的配置只能够抓取到http协议的数据包,https的需要再次进行一些fiddler电脑端和手机端的相关设置
③、抓取电脑上的网络请求就很简单了,直接在电脑安装好fiddler后,打开fiddler,只要一有相关http网络请求就都会被fiddler捕获到(默认也是不能直接捕获到https协议的数据包的,如果想捕获电脑上的https协议的数据包,电脑端的fiddler同样需要做一些相关配置)
二、fiddler抓取https的配置步骤如下:
2.1、在fiddler里的设置:
打开fiddler菜单项 Tools -> Options... -> HTTPS,勾选 CaptureHTTPS CONNECTs,勾选 Decrypt HTTPS traffic和Ignore servercertificate errors(unsafe)两项,点击ok(首次点击会弹出是否信任Fiddler证书和安全提示,直接点击yes就行)。
PS:执行完这一步,fiddler就可以抓取电脑端上https协议的网络请求了。。
2.2、在手机端的设置:
手机打开浏览器输入电脑的ip:端口号(注意冒号是英文的 例本文中则是 192.168.13.125:8888),点击前往之后会打开fiddler证书界面,点击 FiddlerRoot certificate 下载证书,提示安装即可
最后,重启fiddler,再次抓包 就可以抓到手机app上的https的请求了~~~ so easy ^_^
对于使用iphone水果手机的朋友可能还需要做下面的配置:
设置->通用->关于本机->证书信任设置,开启fiddler证书的信任,之后重启fiddler就可以抓取到了!
最后的最后,你需要访问https开头的网址才能抓到啊,你访问的都是http的,然后你说抓不到!哭晕在厕所了~ 哈哈哈。。。
Fiddler工作原理
当启动fiddler后,fiddler将会把自己作为一个代理服务器,所有的http请求在达到目标服务器之前都会经过fiddler,同样的,所有的http响应都会在返回客户端之前经过fiddler
fiddler可以抓取支持http代理的任意程序的数据包,如果要抓取https会话,要先安装证书
fiddler 是以代理web服务器的形式工作的,它使用代理地址 127.0.0.1, 端口号:8888。fiddler会自动设置代理, fiddler退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果fiddler非正常退出,这时候因为fiddler没有自动注销,可能会造成网页无法访问。解决的办法是重新启动下fiddler
fiddler工作原理图如下:
更多fiddler教程:fiddler教程
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。
精彩评论