fiddler抓包 移动端和PC端

3,082 阅读3分钟

fiddler维基百科介绍:

Fiddler是一个用于HTTP调试的代理服务器应用程序,最初由微软Internet Explorer开发团队的前程序经理Eric Lawrence编写。 Fiddler能捕获HTTP流量,并将其记录下来供用户查看。它通过使用自签名证书实现中间人攻击来进行日志记录。

fiddler的工作原理,其实就是代理。fiddler将自己作为代理服务器,默认监听8888端口,只要将移动端或者PC端的http或https流量转发到8888端口,fiddler就可以抓取到相关的web流量信息。手机和电脑需连接到同一个wifi下。

一. 手机抓包(小程序,app)

上面我们知道了fiddler工作原理,就是将流量转发到8888端口。OK,为了让fiddler能抓到手机的包,我们就按如下步骤,来转发流量吧。 首先,安装并启动fiddler,点击菜单栏上的 Tools => Options,会弹出配置窗口。

Options
如图,可以看到fiddler默认监听的端口是8888,你可以修改,但还是建议用默认的。同时勾选“Allow remote computers to connect”允许远程计算机连接,关闭窗口,重启fiddler。
端口设置

按win键+R键输入cmd回车,打开cmd命令窗口,输入ipconfig查看自己的ip地址,我这里是192.168.1.103

ipconfig
将手机和电脑连接到同一个wifi下,打开手机端的wifi设置,安卓华为机器是下拉通知栏,长按wifi图标,长按wifi名称,选择修改网络。
修改网络
勾选“显示高级选项”,代理选择“手动”,服务器主机名填写你的电脑ip,服务器端口填写8888.
高级选项
此时,手机端打开百度测试一下,可以发现fiddler抓到了包,如下图,设置成功。
百度测试
如下图,右边点击“composer”标签页,从左边拖动一个请求到右边,可以构造一个相同的请求,点击execute可以重新发送该请求,对网站进行重放攻击。点击raw标签,可以看到http的请求构造,如果发现返回的响应body是乱码,原因是被压缩了,删除请求头中的Accept-Encoding:gzip, deflate重新点击execute,可以发现响应的body可以读懂了。
composer

二. 抓包手机https(小程序、app)

时间有点晚了,要出发去上班,晚上回来再续吧。 回来啦,继续写文章。 上面做好fiddler的配置后,只能抓http请求,无法抓到https的请求,为了抓取https请求,我们需要继续配置fiddler,如图,点击菜单栏Tools => Options,点击https标签页,如图勾选这三个地方。注意接下来的流程都是在第一步抓http请求配置好后继续操作的。

https
然后打开手机浏览器,访问你的电脑fiddler的代理地址,我的是192.168.1.103:8888,点击最底下的FiddlerRoot certificate链接,会下载一个证书,下载完后安装即可。
fiddler证书
如图,手机浏览器访问新浪微博,可以看到能抓取https流量了。
抓取https

三. 抓包PC浏览器http和https请求

PC浏览器以Chrome为例,原理跟上面一样,也是将流量导到fiddler的代理端口8888即可。代理切换可以在Chrome的“设置 => 高级 => 打开代理设置”中设置。但这里我强烈推荐使用chrome的代理插件Proxy SwitchyOmega进行设置,不要切到fiddler代理时一键切换,不用老是改chrome的设置。但安装这个插件请翻墙。 Proxy SwitchyOmega安装完成后,如图,点击选项。

Proxy SwitchyOmega
按如下设置代理。
设置fiddler代理
填写代理设置。
代理设置
点击刚才建的代理,即可抓到Chrome的流量了。
Chrome
如果要抓Chrome的https流量,跟手机一样的道理,需要安装fiddler证书,证书在Actions这里,点击Actions下载,双击安装即可。
Actions