Fiddler抓包原理解析

Fiddler抓包原理解析

一、Fiddler简介:

Fiddler是一款免费且功能强大的数据包抓取软件。是位于客户端和服务器端之间的http(s)代理,它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,记录所有客户端和服务器间的http请求,针对特定的http(s)请求,分析网络传输的数据,支持监视,还可以设置断点、修改请求的数据和服务器返回的数据。Fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。

二、Fiddler工作原理:

Fiddler工作于OSI七层模型中的应用层,Fiddler在浏览器与服务器之间建立一个代理服务器,能够捕获通过的http(s)请求。Fiddler启动后会自动将代理服务器设置成本机,默认端口为8888。Fiddler不仅能记录PC上浏览器的网络请求数据,还可以记录同一网络中的其他设备的HTTP(S)请求数据。数据传递流程大致如下:

Fiddler抓包原理解析

 

三、Fiddler抓取HTTPS原理:

现在APP中的数据传输基本上都使用HTTS传输,传输的数据都是经过加密的,这增加了我们分析数据包的难度,还好Fiddler除了可以抓取HTTP数据包,还可以抓取HTTPS数据包。由于HTTPS传输需要使用到CA证书,所以抓取https数据包时需要做一些特殊配置。Fiddler截取HTTPS报文的流程大致如下:
Fiddler抓包原理解析

(1) 客户端请求建立HTTPS链接,发送客户端支持的加密协议及版本列表等信息给服务器端。

(2) Fiddler接受客户端请求,并伪装成客户端向WEB服务器发送相同的请求。

(3) WEB服务器收到Fiddler的请求以后,从请求中筛选合适的加密协议。并返回服务器CA证书,证书中包括公钥信息。

(4)Fiddler收到WEB服务器的响应后,保存服务器证书并伪造一个自签名的CA证书,伪装成服务器,把该证书下发给客户端。

(5)客户端验证证书合法性。(Fiddler能否抓取到HTTPS报文关键看这一步)

(6)客户端生产对称密钥,并使用伪造的公钥证书进行加密,发送给服务器。

(7)Fiddler拦截客户端的请求以后,使用伪造的私钥解密该报文,获取对称加密秘钥,并使用真正服务器证书中带的公钥加密该对称密钥发送给WEB服务器。(此时对称密钥已经泄露了,以后可以使用该秘钥解密客户端和服务器端传输的数据)

(8)WEB服务器接收到客户端发送的加密的对称密钥后,使用私钥解密,并使用对称密钥加密测试数据传给客户端。

(9)Fiddler使用前面获取的对称密钥解密报文。

(10)客户端验证数据无误以后,HTTPS连接就建立完成,客户端开始向服务器发送使用对称密钥加密的业务数据。

(11)Fiddler使用前面获取的对称密钥解密客户端发送的数据,并重新加密转发给服务器端。

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114600.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号