​《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(9)-Fiddler如何设置捕获Https会话​

1.简介

由于近几年来各大网站越来越注重安全性都改成了https协议,不像前十几年前直接是http协议直接裸奔在互联网。还有的小伙伴或者童鞋们按照上一篇宏哥的配置都配置好了,想大展身手抓一下百度的包,结果一试傻眼了,竟然毛都没有抓到,怀疑是不是上了宏哥的当了。不是的哈,今天宏哥趁热打铁接着讲解如何抓取https协议会话。

2.什么是HTTPS?

HTTPS就是加过密的HTTP。使用HTTPS后,浏览器客户端和Web服务器传输的数据是加密的,只有浏览器和服务器端知道内容。

HTTPS = HTTP + TLS或者SSL。采用HTTPS的网站需要数字证书认证机构(Certificate Authority,CA)申请证书。

通过这个证书,浏览器在请求数据前与Web服务器有几次握手验证,以证明相互的身份,然后对HTTP请求和响应进行加密。

3.HTTPS协议传输的原理

HTTPS协议传输的原理和过程简图如下所示:

 如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386    

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a

4.Fiddler捕获Http协议会话

Fiddler是一个很好的抓包工具,默认是抓Http协议请求的(经过上一篇的配置就可以成功捕获),但是不会捕获Https协议会话,需要你进一步配置才能抓取Https会话。如下图所示:

 

5.Fiddler抓取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使用前面获取的对称密钥解密客户端发送的数据并重新加密转发给客户端。

6.Fiddler捕获Https协议会话

默认情况下,Fiddler不会捕获HTTPS请求,需要进行设置。

当浏览器访问HTTPS网页的时候,Fiddler能捕获到很多握手验证的请求,比如用浏览器访问:Https://www.baidu.com ,在Fiddler中就能抓到很多“Tunnel to”的请求,如下图所示:

 

1.在没有进一步配置之前用Fiddler抓包时候,分别用FireFox和Chrome浏览器打开百度网页:https://www.baidu.com 可以在会话面板看到百度信息,但是进行查看是Fiddler的监控面板出现黄色的告警“Https decryption is disabled click to configure”(翻译:https 解密被禁用 ,点击配置)。至于IE浏览器,微软已经官宣它已经要落幕退役,宏哥这里就不做过多的介绍了。当然了Firefox浏览器有些版本也会有特殊情况需要你进一步配置,这个宏哥在后边会做介绍的。如下图所示:

从上图中我们可以清楚地看到Host列中出现Tunnel to...字样”,总之以后如果会话列表中的Host列中出现Tunnel to...字样都说明是证书的问题, 这种就不能抓取到我们想要的会话。那么要抓取https协议的会话需要打开配置安装证书才可以,毕竟目前很多网站都是https协议的, 所以在抓包之前,我们还要配置一下证书 否则无法抓包。那么接下来跟随宏哥看看Fiddler如何配置证书。

6.1Fiddler证书配置

1.启动FIddler,然后在菜单栏点击Tools---->Options---->HTTPS 。如下图所示:

2.依次勾选“Capture HTTPS CONNECTs”(捕获HTTPS连接)和勾选“Decrypt HTTPS traffic”(解密HTTPS流量),然后会弹出一个对话框 直接点击YES即可。如下图所示:

 

 

敲黑板!!!

你是第一次安装的Fiddler那么正常情况下会弹出证书安装的相关提示。如果有的小伙伴或者童鞋们没有弹出提示,你也不要着急上火和担心,你可以点击Actions---> Trust Root Certificate(信任根证书)就会弹出一模一样的证书安装相关提示。如下图所示:

3.点击“Yes”后,接下来弹出的对话框全部傻瓜式地点击“是”即可。如下图所示:

 4.弹出“Added Fiddler's root certificate to the Machine Root list”(将Fiddler的证书添加到机器根目录列表中) ,点击“确定”。如下图所示:

5.最后把下面的:“Ignore server certificate errors(unsafe)”忽略服务器证书错误(不安全)和“check for certificate revocation ”(证书撤销检查)这两个选项也勾选上。如下图所示:

 

到此证书也已经安装到Fiddler上了。

6.2查看安装到Fiddler的证书

6.2.1方法一

1.我们可以点击Actions中选择Open Windows Certificate Manager这一个选项, 打开打开Windows证书管理器去查看。如下图所示:

 

2.打开打开Windows证书管理器 之后点击菜单栏上的 操作--->查找证书然后输入Fiddler 就会查找出证书了(如果没有说明没有安装成功),如下图所示:

3.证书名为DO_NOT_TRUST_FiddlerRoot 大家可以对照着看看。如下图所示:

 

 

6.2.2方法二

1.WIN+R打开运行,输入certmgr.msc回车,点击“受信任的根证书颁发机构--->点击“证书”。查看,如下图所示:

6.3信任证书

证书安装了之后 还要设置一下信任才行。具体操作步骤如下:

1.直接选择Tools--->Options---->HTTPS---->Actions--->Trust Root Certificate 。如下图所示:

2.在接下来弹出的对话框中直接点击确定或yes就行了,如下图所示:

 好了到此为止,大功告成!现在如果不出意外的话就可以进行正常的抓取HTTPS包了。

敲黑板!!!

如果还是不行,那么最好重置一下证书 在Actions中选择Reset All Certificates(重置所有证书) 然后点击确定删除Fiddler所配置的证书,最后重新执行之前的步骤就可以了。

7.小结

 今天宏哥主要简单的讲解和分享了Fiddler如何设置捕获Https会话 ,后边会一一展开进行详细的分享和讲解,好了时间不早了今天就到这里,感谢大家耐心地阅读!!!

会遇到的问题:

证书导出失败,出现如下提示:Unable to configure Windows to Trust the Fiddler Root.... 如下图所示:

解决方案:

找到fiddler->工具栏tools->options,再选择HTTPS,点击CertEnroll engine,选择MakeCert即可点击OK保存,最后切记重启fiddler!!!

8.拓展

我们在Skip decryption中输入ip地址或者域名可以用来跳过该主机或域名的https数据抓取,这个也相当于一种过滤功能吧!如下图所示:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/53043.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Selenium+Java环境搭建(测试系列6)

目录 前言: 1.浏览器 1.1下载Chrome浏览器 1.2查看Chrome浏览器版本 1.3下载Chrome浏览器的驱动 2.配置系统环境变量path 3.验证是否成功 4.出现的问题 结束语: 前言: 这节中小编给大家讲解一下有关于Selenium Java环境的搭建&…

数据结构: 线性表(顺序表实现)

文章目录 1. 线性表的定义2. 线性表的顺序表示:顺序表2.1 概念及结构2.2 接口实现2.2.1 顺序表初始化 (SeqListInit)2.2.2 顺序表尾插 (SeqListPushBack)2.2.3 顺序表打印 (SeqListPrint)2.2.6 顺序表销毁 (SeqListDestroy)2.2.5 顺序表尾删 (SeqListPopBack)2.2.6 顺序表头插 …

晋级榜单揭晓!华秋第九届硬创大赛-华南分赛区路演成功举办

7月21日,第十五届深创赛福田预选赛区暨华秋第九届硬创大赛华南分赛区决赛路演活动在深圳华强科创广场成功举办。活动由深圳华秋电子有限公司(以下简称 华秋 )、深圳市福田区新一代信息技术产业链党委、深圳新一代产业园、微纳研究院、华强科创…

【嵌入式学习笔记】嵌入式入门1——GPIO

1.什么是GPIO General Purpose Input Output,即通用输入输出端口,简称GPIO,作用是负责采集外部器件的信息或者控制外部器件工作,即输入输出。 2.STM32 GPIO简介 2.1.GPIO特点 不同型号,IO口数量可能不一样&#x…

中小学分班查询系统0成本制作方法公布了,人人可用

传统的学生分班查询平台通常需要进行专业的技术开发,以实现学生查询和查看分班信息的功能。这个过程涉及到软件开发、数据库设计、系统集成等多个环节,需要有一支专业的技术团队来完成。 然而,这样的技术开发和维护过程需要耗费大量的经济成…

HBase有写入数据,页面端显示无数据量

写了一个测试类,插入几条数据,测试HBase的数据量。很简单的功能,这就出现问题了。。网页端可以看到,能够看到读写请求,但是不管是内存、还是磁盘,都没有数据。 于是就想到去HDFS查看,也是有数据…

Python简要复习

Python程序设计复习 Python基础知识 python的特点 兼具编译型和解释型特性,兼顾过程式、函数式和面向对象编程范式的通用编程语言 解释型语言无需像编译型需要一次性的编译成机器码,然后运行,而是由名叫解释器的程序动态的将源代码逐句转…

热备份路由协议原理

热备份路由协议原理 HSRP协议/VRRP协议热备份协议 热备份协议(Hot Standby Protocol) 是一种基于冗余设计的协议,用于提高网络的可靠性和冗余性。它允许多个设备共享同一个IP地址,其中一个设备被选为主设备,其他设备…

Tinkercad 建模21个小技巧

21个Tinkercad 建模小技巧 原文 参考文章:在 Tinkercad 中加快设计的 22 个技巧 一起来了解一下21个Tinkercad 3D建模小技巧,让你快人一步。 技巧1 Copy & Paste 文件,整合设计 想把文件A里面的模型拷贝到文件B里面? 很容…

【Linux】Centos的一些快捷操作

Centos的一些快捷操作 一个窗口多个终端GVIM 一个窗口多个文件 一个窗口多个终端 GVIM 一个窗口多个文件

idealC-2020.1.4免费下载(附安装教程)

下载地址 [软件名称]: IntelliJ IDEA 2020 [软件大小]: 560MB [安装环境]: Windows [下载链接]: 链接: https://pan.baidu.com/s/1yGOWqfRVE6cPsAe0qHpnbg https://pan.baidu.com/s/1yGOWqfRVE6cPsAe0qHpnbg 提取码: zt88 软件介绍 idea 2020.是由捷克IntelliJ公司而…

python_day16_设计模式

“”“单例模式”“” “”“工厂模式”“” class Person:passclass Worker(Person):passclass Student(Person):passclass Teacher(Person):passclass Factory:def get_person(self, p_type):if p_type w:return Worker()elif p_type s:return Student()else:return Te…

51单片机学习--按键控制流水灯模式定时器时钟

TMOD负责确定T0和T1的工作模式,TCON控制T0和T1的启动或停止计数,同时包含定时器状态 TF1:定时器1溢出标志 TF0:定时器0溢出标志 0~65535 每隔1微秒计数器1,总时间65535微秒,赋上初值64535,则只…

webstorm格式化代码后单引号转成了双引号

webStorm格式化js代码时单引号变成了双引号,问题如下: 格式化前: 格式化后: 解决办法: window: File -> Settings -> Editor -> Code Style -> Javascript; mac: webStorm -> Preference …

Flink回撤流

1.回撤流定义(RetractStream) Flink 的回撤流是指在 Flink 的流处理算法中,撤回已经发送到下游节点的数据。这是因为在实际应用场景中,有些错误数据可能会发送到下游节点,因此需要回撤流以保证数据的准确性。 回撤流…

【Docker】Docker应用部署之Docker容器安装Tomcat

目录 一、搜索镜像 二、拉取镜像 三、创建容器 四、测试使用 一、搜索镜像 docker search tomcat 二、拉取镜像 docker pull tomcat:版本 三、创建容器 首先在宿主机创建数据卷的目录 mkdir /root/tomcat # 创建目录 cd /root/tomcat # 进入目录 docker run -id -…

【腾讯云 Cloud Studio 实战训练营】永不宕机的IDE,Coding Everywhere

【腾讯云 Cloud Studio 实战训练营】永不宕机的IDE,随时随地写代码! 写在最前视频讲解:Cloud Studio活动简介何为腾讯云 Cloud Studio?Cloud Studio简介免费试用,上手无忧Cloud Studio 特点及优势云端开发多种预制环境可选metawo…

怎么学习C语言,才能快速掌握?

有多年软件行业经验,期间参与过多个C语言项目。要掌握一门编程语言,仅仅投入时间学习是不够的,关键在于实际项目经验。在没有真正实战经验之前,不宜轻易声称掌握某种编程语言,因为编程是积累性的工作,理论知…

本地Git仓库和GitHub仓库SSH传输

SSH创建命令解释 ssh-keygen 用于创建密钥的程序 -m PEM 将密钥的格式设为 PEM -t rsa 要创建的密钥类型,本例中为 RSA 格式 -b 4096 密钥的位数,本例中为 4096 -C “azureusermyserver” 追加到公钥文件末尾以便于识别的注释。 通常以电子邮件地址…

微服务契约测试框架Pact-Python实战

Pact是一个契约测试框架,有多种语言实现,本文以基于pact-python探究契约测试到底是什么?以及如何实现 官网:自述文件 |契约文档 (pact.io) 契约测试步骤 1、为消费者写一个单元测试,让它通过,并生成契约…