在实际开发过程、生活中,你可能会遇到这样的问题:
- 需要分析手机APP、微信小程序、网页的HTTPS或者HTTP请求
- 在开发web应用时发现一些数据传输的问题,需要获取信息进行调试
- 你是非开发人员,使用某公司数据管理软件客户电话号码是加密状态,必须管理员放权你才有机会查看
- 登陆某网站你一直是记住密码登陆的,但是有一天你忘记了密码
- 等
Fiddler
调试来自PC,Mac或Linux系统以及移动(iOS和Android)设备的流量。确保在客户端和服务器之间传输正确的cookie,标头和缓存指令。支持任何框架,包括.NET,Java,Ruby等。并且可以进行HTTP/HTTPS流量记录,安全测试、性能测试等,可以说是一个不错的软件,但是唯一遗憾的就是没有MAC版本,如果你的电脑是mac,那么可以考虑使用CrossOver进行安装和练习。
下载:
Fiddler官方:https://www.crossoverchina.com/
下载Fiddler
Fidder:官方(https://www.telerik.com/download/fiddler)
填写好你的邮箱,点击下载你的邮箱会收到一个fiddle发送的邮件你就可以下载了!
安装:
无脑下一步即可,这里不做过多介绍
使用:
我们可能在使用的时候面临几种使用情况
- 浏览器HTTP抓包
- 浏览器HTTPS抓包
- 安卓、苹果APP抓包
- 小程序公众号抓包
我们先来介绍下前两种解决方案
不出意外我们进入应该是这样的页面
首先我们需要进行一些简单的设置,因为现在网页端请求和APP以及小程序大部分都是用的是HTTPS协议所以我们需要让软件来获取HTTPS协议。
这样你的fiddler就可一获取HTTPS的数据啦,如果你给网站配置过HTTPS那麽“证书”这个词肯定不会陌生,Fiddler也不例外,第一次会弹出证书安装提示,若没有弹出提示,勾选Actions-> Trust Root Certificate进行证书的安装。
选中Allow remote computers to connect(允许远程连接)
Act as system proxy on startup(作为系统启动代理)
完成后保存,并且重启Fiddler。
浏览器抓包
当你要使用浏览器抓包,数据信息肯定要通过代理服务器然后向路由传递,而Fiddler检测代理服务器端口我们设定的是8888,所以你的浏览器要设定一个局域网代理以及端口号,这样就有了接下来的故事。
我下载的是Chrome的一个插件叫SwitchOmega,帮助我设定代理,这里代理协议是HTTP,设好后点击应用选项
右键点击你设定好的“情景模式”(软件里面这样叫),然后你就可以访问一个网址看看Fiddler是否已经抓取到了数据信息。
这是我访问www.baidu.com,抓取的信息
当然相信,了解HTTP协议的你,肯定可以快速找到你想要获得的信息。
软件如何抓取呢?
如果我想抓取一些软件传递的数据信息我如何使用Fiddler?刚好因为最近的一个微信需求,我在使用Fiddler进行手机抓包的时候,因为微信7.0版本对与证书的验证更加的严密,使我没办法抓取到我想要的一个二次开发微信公众号的数据,于是我用电脑登陆了电脑微信然后通过电脑微信访问那个公众号,Fiddler在进行抓取获得了我想要的信息。很简单!很简单!
右键长按这个按钮然后把它拖拽到微信的窗口上就可以了!
变成这个样子搭建看到上面的红色字体了吗?然后我就可以用电脑端微信访问微信公众号(那种经过二次开发的)。
然后就可以抓到了,这个方法小程序好像也适用大家可以测试看看。
手机抓包
手机抓包过程:保证电脑和手机是在一个局域网下也就是在一个WiFi下--->手机WiFi设定代理----->访问网址:你的电脑IP+端口号----->安装证书并且设定为信任,我是小米手机安装完了他自动就弹出是否设定信任,其他手机如果没弹出的话需要手动设定,苹果手机一般都需要手动设定----->正常访问你抓取的APP
设置好代理主机名和端口号,主机名可以使用cmd命令查找也就是你的无线适配器WLAN的IPV4地址
手机访问你的IP:端口号,会弹出Fiddler,点击这个可以下载证书并且安装,一定要记得设置信任,尤其是苹果用户。
安装完后你就可以访问你要抓取的APP了,电脑端的Fiddler就会有显示了。
嗯.....好看养眼
资料
Fiddler开始工作了,抓到的数据包就会显示在列表里面,下面总结了这些都是什么意思:
Statistics 请求的性能数据分析
左边看完了,现在可以看右边了
随意点击一个请求,就可以看到Statistics关于HTTP请求的性能以及数据分析了(不可能安装好了Fiddler一条请求都没有…):
Inspectors 查看数据内容
Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容: