1、什么是Fiddler
  
Fiddler是一个http协议调试代理工具,它能够记录客户端和服务器之间的所有HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
  
  2、Fiddler工作原理
  
  Fiddler是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler启动后将自己变成一个代理服务器,这个代理服务器默认监听127.0.0.1:8888。然后打开IE的时候,IE浏览器会以127.0.0.1:8。退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。
  
  3、Fiddler代理设置
  
  在安装之前首先我们需要Fiddler截获客户端浏览器发送给服务器的https请求,此时还未建立握手。接下来就是具体步骤:
  
  第一步,Fiddler向服务器发送请求进行握手,获取到服务器的CA证书,用根证书公钥进行解密,验证服务器数据签名,获取到服务器CA证书公钥。
  
  第二步,Fiddler伪造自己的CA证书,冒充服务器证书传递给客户端浏览器,客户端浏览器做跟Fiddler一样的事。
  
  第三步,客户端浏览器生成https通信用的对称密钥,用Fiddler伪造的证书公钥加密后传递给服务器,被Fiddler截获。
  
  第四步,Fiddler将截获的密文用自己伪造证书的私钥解开,获得https通信用的对称密钥。
  
  第五步,Fiddler将对称密钥用服务器证书公钥加密传递给服务器,服务器用私钥解开后建立信任,握手完成,用对称密钥加密消息,开始通信。
  
  第六步,Fiddler接收到服务器发送的密文,用对称密钥解开,获得服务器发送的明文。再次加密,发送给客户端浏览器。
  
  第七步,客户端向服务器发送消息,用对称密钥加密,被fidller截获后,解密获得明文。
  
  由于Fiddler一直拥有通信用对称密钥,所以在整个https通信过程中信息对其透明。
  
  写在最后:fiddler安装后抓不了包的问题
  
  一般能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。Fiddler启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将浏览器的代理改为127.0.0.1:8888就可以监听数据了。


行走的打火机
1 声望0 粉丝