三 Fiddler _1原理&过滤

原理

1设置代理服务器,进行监听

抓包工具相当于在客户端和服务器端之间设置了一个中介(Proxy),客户端的请求先发送给Proxy,Proxy再转发到服务器,服务器的响应信息也是先发送给Proxy,再由Proxy转发给客户端。

2 如何做客户端和服务器端的中间人的?

image.png

2.1 截获服务器向客户端发送的证书,替换里面的公钥A为自己的公钥B;客户端对证书进行验证,主要验证签名。
2.2 截获客户端验证无问题后,决定通信密钥C。向服务器端发送的用公钥B加密后的报文,Proxy用自己的私钥解密报文,得到客户端同服务器端商议的接下来进行通信的对称密钥C。
2.3 用2.1里截获到的服务器的公钥A,对2.2中解密后的报文重新进行加密,发发送给服务器端。
2.4 代理服务器获得了通信的对称密钥,继续对通信过程进行监听,截获。

2 抓包的范围

只支持数据流协议的抓包,比如https http ftp websocoket等,不支持邮箱相关的协议(SMTP POP3)

3 Fiddler启动

3.1 Fiddler工具一启动,默认设置为本机系统的代理服务器,启动代理服务。Tools--》Options打开的窗口,选择Connections,可以看到勾选了Fiddler一启动就设置为系统代理,和监听端口8888的设置。监听端口8888表示本机8888端口对应提供代理服务器的服务。


image.png

3.2 Fiddler启动后会自动去修改IE,360,Chrom浏览器的代理设置,将他自己设置为浏览器的代理服务器,查看浏览器的代理服务器设置可以看到IP设置为本机,端口为8888。关闭Fiddler后,设置消失。


image.png

4 过滤抓包
由于Fiddler启动就自动成为系统的代理服务器,会抓取很多我们不需要的包,所以需要对抓包对象进行过滤

只抓取某个浏览器里的包

将3.1中的Act as system proxy on startup勾选掉,设置一个特殊点的端口号,比如8154。在我们要抓捕的浏览器的高级设置中,重新设置代理服务器的端口号。
设置代理服务器的端口:


image.png

手动设置浏览器:


image.png

结果:抓取到360浏览器中的包
image.png

只抓取某个网站的包

点击Fiddler中的Filters,选择过滤的策略,写入过滤的host和端口号,点击Actions下拉列表中的run filters now就可以了。比如我们只抓取简书的包
设置过滤器:


image.png

【疑问】
1 设置过滤器后,去缓存刷新抓不到包,或者多次刷新只抓到一个包,点入简书其他页面也没有包,奇怪
解决办法如下:
1.1设置抓取https 的包,安装证书。观察简书的url,发现使用的是https协议。https://www.jianshu.com/p/cd0581354da1
1.2重启电脑,估计其实不用重启。应该只需要重启下Fiddler应该就可以了。
2 单向认证可以想清楚Proxy 的原理,如果Client 和Server是双向认证的,怎么想?
3 抓包时为什么抓不到证书验证和协商通信秘钥的过程?
【参考】
https://www.jianshu.com/p/7cdd21248232

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原因 在现实项目中,由于开发的经常调试,接口的不稳定,和接口文档的不及时更新,我们选择做接口测试,更多的需要自己抓...
    我为峰2014阅读 3,490评论 1 5
  • 转载地址 image.png 前言 fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的htt...
    菜菜编程阅读 21,947评论 0 28
  • 1、工具介绍 Charles是一款在Mac下常用的数据包截取工具,在做移动开发时,为了调试移动端与服务端的网络通讯...
    栗子_2019阅读 8,737评论 0 2
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 12,478评论 6 13
  • 不必想太多,只需多读书 昨日与十三闲聊,感叹来北京已经12年了,顿时引起了我的思考。 为什么会在北京?因为...
    徐十三阅读 453评论 5 3

友情链接更多精彩内容