《吐血整理》进阶系列教程-拿捏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协议传输的原理和过程简图如下所示:

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数据抓取,这个也相当于一种过滤功能吧!如下图所示:

原文地址:https://cloud.tencent.com/developer/article/2077216

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

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340