zoukankan      html  css  js  c++  java
  • Fiddle抓包原理解析02

    一、Fiddle简介

    Fiddler是一款免费且功能强大的数据包抓取软件。是位于客户端和服务器端之间的http(s)代理,它通过代理的方式
    获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,记录所有客户端和服务器间的http请求,针对特定的
    http(s)请求,分析网络传输的数据,支持监视,还可以设置断点、修改请求的数据和服务器返回的数据(弱网测试原理)

    二、Fiddle工作原理:

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

    三、Fiddle抓取HTTPS原理:

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

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

     

    参考:https://blog.csdn.net/weifengjuan/article/details/87867786#commentBox

     

     

     
     
     
  • 相关阅读:
    [爬虫资源]各大爬虫资源大汇总,做我们自己的awesome系列
    [Nancy On .Net Core Docker] 轻量级的web框架
    2015,平凡之路
    转[开发环境配置]在Ubuntu下配置舒服的Python开发环境
    转自coolshell--vim的基本操作
    [python基础]关于包,类,模块的那些事儿
    [python IDE] 舒服的pycharm设置
    [python基础]关于中文编码和解码那点事儿
    [python基础]关于装饰器
    小白也能看懂的插件化DroidPlugin原理(三)-- 如何拦截startActivity方法
  • 原文地址:https://www.cnblogs.com/st998/p/13815899.html
Copyright © 2011-2022 走看看