fiddler 抓包原理
客户端(浏览器)与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器。而Fiddler是c#开发的http代理服务器,fiddler工作于七层中的应用层,能够捕获到通过的http(s)请求。fiddler启动后会自动将代理服务器设置为本机,端口8888。 启动之后,会看到:
抓包其中涉及三个角色: 客户端 、 代理、 目标服务器
原本正常访问网页或App路径是:
- 客户端 ---> 目标服务器
- 抓包,其实就加入了一个代理,即:客户端 ---> 媒人(代理)-->目标服务器
- 只有这三者产生一定的联系,才能进行拦截/抓取一些东西,客户端先访问媒人,媒人把客户端的信息记录下来,媒人再去联系目标服务器,进而返回给客户端。
Fiddler 抓取https 报文过程:
详细过程解析:
+ 客户端请求建立HTTPS连接,发送客户端支持的加密协议和版本列表等信息给服务器;
+ Fiddler接受客户端的请求并伪装成客户端发送相同的请求给Web服务器;
+ Web服务器收到Fiddler的请求后,从请求中筛选出合适的加密协议并返回服务器CA证书,证书中包含公钥信息;
+ Fiddler收到服务器响应之后,保存服务器证书并自签名一个证书,伪装成服务器将该证书下发给客户端;
+ 客户端验证证书的合法性(Fiddler能否抓取到HTTPS报文关键就看这一步了);
+ 客户端生产对称密钥并使用自签名证书的公钥进行加密,发送给服务器;
+ Fiddler拦截客户端的请求之后,使用私钥解密该报文,获取对称密钥并使用CA证书的公钥加密,再发送给Web服务器;
+ Web服务器接收到客户端加密后的对称密钥,采用私钥解密,并使用对称密钥解密测试数据传给客户端;
+ Fiddler使用前面获取的对称密钥解密报文;
+ 客户端验证数据无误后,HTTPS连接建立完成,此时客户端开始向服务器发送使用对称密钥加密的业务数据;
+ Fiddler使用前面获取的对称密钥解密客户端发送的数据并重新加密转发给客户端。
软件下载:
Fiddler官方下载地址:(Fiddler安装包 → FiddlerSetup.exe)
Willow插件官方下载地址:(Willow插件安装包 → WillowSetup-1.5.2.zip)
nginx 正向代理、反向代理解释
正向代理最大的特点:
- 客户端非常清楚明确要访问的服务器地址
- 服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端
- 正向代理模式屏蔽或者隐藏了真实客服端信息
反向代理,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。
明白了fiddler 的原理,其实就清楚了。
tips: node 做中间代理服务器的时候,会遇到 fiddler,whistle,charles 之类的软件抓不到(fiddler的原理就是一个代理服务器,说明node的请求没有经过Fiddler代理服务器)
附上大图
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!