fidder抓包原理及content-type类型

fidder抓包原理简介

  1. 客户端像WEB服务器发送HTTP(S)请求时,请求会先经过Fiddler代理服务器。
  2. Fiddler代理服务器截取客户端的请求报文,再转发到WEB服务器,转发之前可以做一些请求报文参数修改 的操作
  3. WEB服务器处理完请求以后返回响应报文,Fiddler代理服务器会截取WEB服务器的响应报文。
  4. Fiddler处理完响应报文后再返回给客户端。
    fidder抓包原理及content-type类型

fidder抓包https原理

现在基本上都使用HTTS传输,传输的数据都是经过加密的,这增加了我们分析数据包的难度,由于H TTPS传输需要使用到CA证书,所以抓取HTTPS数据包时需要做一些特殊配置。Fiddler截取HTTPS 报文的流程大致如下:fidder抓包原理及content-type类型

  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使用前面获取的对称**解密客户端发送的数据并重新加密转发给服务器端。

Fidder在此时就相当于一个双面间谍一样,对服务器来说它是客户端,对客户端来说它是服务器端,能够同时获得客户端和服务端加密的内容

常见的content-type

  1. application/x-www-form-urlencoded:这应该是最常见的提交数据的方式了。数据被编码为名称/值对,这是标准的编码格式
  2. multipart/form-data:一般用在发送文件的POST包,另外,还有boundary用于分割数据。当文件太长,HTTP无法在一个包之内发送完毕 ,就需要分割数据,分割成一个一个chunk发送给服务端, 那么boundary用于区分数据块, 而后面的数据就是标示区分包作用
    fidder抓包原理及content-type类型
  3. text/xml:通过XML 形式将数据发送给服务器
  4. application/json:通过json形式将数据发送给服务器,现在越来越多的应用使用application/json,由于 JSON 规范的流行,除了低版本 IE 之外的各大浏览器都原生支持 JSON. stringify,服务端语言也都有处理 JSON 的函数,使用 JSON 不会遇上什么麻烦。