[学习笔记]01 fiddler
介绍一下
这个是我之前的笔记,写的比较乱,不过,我个人觉得全是经典,没有废话,看完之后收益还是蛮大的。需要自取。--来自爱做梦的亭子
参考
视频学习参考1(腾讯课堂):https://ke.qq.com/course/155088
视频学习参考2(慕课网):http://www.imooc.com/learn/37
公众号=》搜狗测试=》菜单栏=》技术分享=》Fiddler大师之路系列教程
fiddler Document(官方):http://docs.telerik.com/fiddler/configure-fiddler/tasks/configurefiddler
杂乱的笔记
怎么查看本机的framework版本?
(1)打开资源管理器,在地址栏输入“C:\Windows\Microsoft.NET\Framework”
(2)在文件夹下可以看到多个文件夹,最高版本就是当前的Net Framework版本
fiddler2和fiddler4的区别
如果你的计算机上的framework的版本大于等于4.0,那么就下载fiddler4,如果小于4.0,就下载fiddler2.fiddler2和fiddler4在功能上没有太多的区别,只是在底层封装上有稍微区别。
fiddler官方网站:http://www.telerik.com/fiddler
fiddler2官方下载地址:https://www.telerik.com/download/fiddler/fiddler2
fiddler4官方下载地址:https://www.telerik.com/download/fiddler/fiddler4
fiddler是什么?
百度百科定义:
Fiddler是一款由C#语言开发的免费http(s)调试代理软件,有.net2.0和.net4.0两个版本,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的进出fiddler的数据(cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。fiddler要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。
结果码:
200=》成功。请求已发送且响应已成功接收
400=》坏请求。当目的服务器接收到请求但是不理解细节所以无法处理时发生
404=》页面找不到。如果目标API已经移动或已经更新但是未保留向后兼容性时发生
500=》内部服务器错误。服务器端发生了某种致命错误,且错误并被服务商捕获
同类工具:httpwatch,firebug,wireshark
对比同类工具的优缺点:
httpwatch:ie的抓包工具
firebug:firefox的一个插件,超牛的web调试工具,web开发者的神:参考视频(慕课):http://www.imooc.com/learn/137
fiddler2:一个网络调试代理,用来检测本地计算机和Internet之间所有的HTTP(s)通讯。抓包fiddler2要比firebug强,不过2者都只能捕获到http协议的。
WireShark(前称Ethereal)是一个网络封包分析软件,网络封包分析软件的功能是获取网络封包。应尽可能显示出最为详细的网络封包资料,直接获取网卡数据,系统底层抓包神器。
功能
1.截获请求
2.查看请求
3.伪造请求
4.测试网站性能(前端工程师的网站优化)
5.解密https的web会话
6.觉得fiddler功能不够,可以用fiddler提供的插件。
下载=》官方=》安装
工具界面介绍:
菜单栏,工具条,监控面板,监控面板辅助的模块,状态栏
fiddler:传输原理=》代理
启动fiddler之后就自动开启了代理服务,不管你的capturing按钮是否是开启状态(F12)。但是为什么capturing开启的情况下才能抓到包,capturing关闭的情况下抓不到包呢?****capturing开启之后会将系统的代理模式修改掉(以注册表的方式),所以凡是走系统代理的软件,我们都可以抓到数据包。
界面介绍:菜单+快捷键+会话列表(状态,协议)+功能标签+状态栏+命令行
最重要的功能(inspectors=>对请求解包)
fiddler只能抓到http和https,如果你是自定义协议,是抓不到的。(为什么能够抓到websocket?因为websocket在握手的时候使用的是http协议)
fiddler的版本说明
fiddler2和fiddler4,功能没有区别,是对系统底层的支持不同,如果是win8以及以上,直接选择fiddler4,如果是win7或者xp你们就需要看一下系统的framework版本,fiddler4是运行在framework4以上的。fiddler2是运行在framework2.0以上的。建议将framework升级到4.0及其以上,因为对应的插件也是要分版本的。
抓包代理设置:
火狐的代理不是使用的系统代理。是独立的一套代理系统,所以不管你fiddler的开关(capturing)是否打开,都捕获不了火狐浏览器的请求。chrome和ie都是用的系统代理,所以没有任何影响。
怎么将火狐转到fiddler上?
方法1:将火狐的代理设置为“使用系统代理设置”
方法2:手工配置代理(远程代理也用这个):手动指定代理之后,不管fiddler的capturing开关是否打开,火狐的数据一样会传递到fiddler这边
远程代理:
fiddler默认情况下只是开启本地的代理,不能抓远程的数据,这个时候需要我们开启远程连接(开启之后重启才能生效)。(如果不能监听,则可以关闭防火墙)
查看端口的情况:netstat -ano|findstr“8888”
0.0.0.0:8888:4个0代表所有的ip都可以连接进来这个端口
![](https://img.haomeiwen.com/i2966483/4d38df80b8e4f100.png)
手机网络抓包=》使用远程代理(首先确保fiddler上的远程连接开关是打开的)。
![](https://img.haomeiwen.com/i2966483/f75b17d2585a3803.png)
手机上也可以直接设置代理
(1)安卓:长按“网络”=》高级=》手动代理=》配置ip和端口(需要确定手机和fiddler的网络必须是通的,不一定在同一个网段)
(2)ios:无限局域网=》手动
loadrunner也是可以被抓包的,只需要在loadrunner中配置一下代理。好多工具都可以被抓包
https抓包设置:
说一下https是什么?基于http之上做了一层加密的保护,这个保护是干什么用的?我们的消息在网络中传输的时候进行加密,防止别人在拦截,窃听,偷看这样的行为,它的原理实际上是通过证书的加密(ssl等)**
**直接抓取https:=》抓到的数据包看不见,看到的inspectors中显示的是“Connect”,connect其实是https在连接的时候和服务器做了认证认证(交换证书)。同时也拦截了fiddler,fiddler是独立于浏览器的,所以看不到数据包。但是可以设置一下Finder。
![](https://img.haomeiwen.com/i2966483/f7cc4b3b14bec724.png)
fiddler用的证书和浏览器用的证书如果一样,那么我们有可能解密https。fiddler和ie都是用的系统的证书管理,如果是别的浏览器也是用的系统的证书管理,fiddler也是可以解密https,如果是火狐,我们就是解密不了https的,因为它使用的是独立的证书管理,不是系统的证书管理。
firefox下的https抓包:
火狐并非系统的证书管理。
将fiddler的证书导出,然后将导出的证书导入到firefox中,这个时候,我们就可以利用firefox访问https的站点了(火狐的证书和fiddler的证书一样了)。
https手机端抓包:不同于pc端的firefox
安卓:需要浏览器直接访问一个地址(http://ip:端口),安装证书,点击最后一行“FiddlerRoot certificate”,点击之后会提示你输入证书名字(乱输入一个就好了),然后点击确定。这个过程比较简单,有的证书需要你输入密码,密码是什么呢?就是你的手机的解锁密码,如果你没有解锁密码怎么办?必须设置一个。
ios:也和安卓类似的,都需要使用默认的浏览器安装证书。可能是叫什么描述文件之类的。但是大致方法是一样的
不是所有的https都能够被抓取,证书验证比较(全)牛逼的情况下,比如什么证书的来源什么的,ios就做的很好。证书全是苹果的,所以管理很全。如果是安卓的,基本不会做的那么全,因为安卓太乱。
websocket抓包
fiddler的隐藏功能=》fiddler对websocket的抓包支持。以后肯定用的比较多,websocket是基于h5的。=》聊天室
抓websocket的数据包和http的数据包有一些区别,就是将ff浏览器设置为****手工配置代理,所有的选项都要打开。
双击会话=》会跳转到一个叫”socket“的功能标签
websocket是双向发送,客户端发送给服务器,服务器推送给客户端。
不想被pc上一堆杂七杂八的session打扰,我只想安静的看关于Android的session。=》只是需要关闭pc的代理就可以了,就是关闭Fiddler的“Capuring”开关。