Fiddler工具 — 18.Fiddler抓包HTTPS请求(一)

1、Fiddler抓取HTTPS过程

  • **第一步:**Fiddler截获客户端发送给服务器的HTTPS请求,Fiddler伪装成客户端向服务器发送请求进行握手 。

  • 第二步: 服务器发回相应,Fiddler获取到服务器的CA证书, 用根证书(这里的根证书是CA认证中心给自己颁发的证书)公钥进行解密, 验证服务器数据签名, 获取到服务器CA证书公钥

    然后Fiddler伪造自己的CA证书(这里的CA证书,也是根证书,只不过是Fiddler伪造的根证书), 冒充服务器证书传递给客户端浏览器。(也就服务器发给客户端的证书被Fiddler留下了,伪造了一个证书发给客户端)

  • 第三步: 与普通过程中客户端的操作相同,客户端根据返回的数据进行证书校验、生成密码Pre_master、用Fiddler伪造的证书公钥加密,并生成HTTPS通信用的对称密钥enc_key

  • **第四步:**客户端将重要信息传递给服务器,又被Fiddler截获。

    Fiddler将截获的密文用自己伪造证书的私钥解开,获得并计算得到HTTPS通信用的对称密钥enc_key

    Fiddler将对称密钥用服务器证书公钥加密传递给服务器。

  • **第五步:**与普通过程中服务器端的操作相同,服务器用私钥解开后建立信任,然后再发送加密的握手消息给客户端。

  • **第六步:**Fiddler截获服务器发送的密文,用对称密钥解开,再用自己伪造证书的私钥加密传给客户端。

  • **第七步:**客户端拿到加密信息后,用公钥解开,验证HASH。握手过程正式完成,客户端与服务器端就这样建立了"信任"。

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

2024备战金三银四,最新版fiddler抓包实战教程!_哔哩哔哩_bilibili2024备战金三银四,最新版fiddler抓包实战教程!共计8条视频,包括:1、fiddler和F12抓包对比、2、Fiddler工作原理、3、配置证书抓取https包等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV19j411J7oc/?spm_id_from=333.337.search-card.all.click

2、拓展:SSL/TLS证书握手原理

普及下SSL/TLS证书握手原理,SSL/TLS证书分为单向认证和双向认证,通过下面的两张图可以简单的了解一下原理。

单向认证:

双向认证:

3、Fiddler抓取https原理总结

在之后的正常加密通信过程中,Fiddler如何在服务器与客户端之间充当第三者呢?

**服务器--->客户端:**Fiddler接收到服务器发送的密文,用对称密钥解开,获得服务器发送的明文。再次加密,发送给客户端。

客户端--->服务端: 客户端用对称密钥加密,被Fiddler截获后,解密获得明文。再次加密,发送给服务器端。由于Fiddler一直拥有通信用对称密钥enc_key, 所以在整个HTTPS通信过程中信息对其透明。

4、Fiddler抓取HTTPS设置

因为Fiddler是一个HTTP代理服务,它位于客户端和服务器端之间,而安装好Fiddler的只可以对HTTP协议进行抓包。

如果需要对HTTPS的协议进行抓包分析,就需要对Fiddler工具进行配置,使得Fiddler工具也可以抓到HTTPS协议的包。

如果没有进行任何的配置就想用Fiddler来抓包分析是实现不了的,即使抓出来也是看不懂的加密内容。因为没有受信任的Fiddler根证书,不能让客户端相信Fiddler伪造的CA证书,从而得到Pre_master

步骤1:配置证书

Tools菜单 ---> Options... ---> HTTPS ---> 勾选Decrypt HTTPS traffic

如下图:

说明:

勾选Decrypt HTTPS traffic选项:

Decrypt HTTPS traffic:意思是解密HTTPS流量(请求)。

然后会弹出一个对话框,如下图:

意思是:为了能够拦截HITTPS通信,Fiddler生成了唯一的根证书。您可以将Windows配置为信任此根证书,以禁止显示安全警告。单击"是"以重新配置Windows的受信任CA列表。

然后接着弹出对话框如下:点击是,确认安装此证书。

是否确认将证书添加到计算机根目录列表?点击是。

最后提示:成功将Fiddler的根证书添加到计算机根列表中。

步骤2:勾选设置

当勾选Decrypt HTTPS traffic选项的时候,会提示你安装证书,安装好证书之后,HTTPS选项界面如下:

我们在继续勾选Ignore server certificate errors (unsafe)选项:忽略服务器证书错误(不安全)。

之后点击OK就可以抓取HTTPS的请求了(我试过了不需要重启)。

相关推荐
吴声子夜歌28 分钟前
TypeScript——泛型
前端·git·typescript
猩猩程序员1 小时前
Pretext:一个绕过 DOM 的纯 JavaScript 排版引擎
前端
竹林8181 小时前
从“连接失败”到丝滑登录:我用 ethers.js 连接 MetaMask 的完整踩坑实录
前端·javascript
神舟之光1 小时前
jwt权限控制简单总结(乡村意见簿-vue-express-mongdb)
前端·vue.js·express
晏宁科技YaningAI1 小时前
全球短信路由系统设计逻辑打破 80%送达率瓶颈:工程实践拆解
网络·网络协议·架构·gateway·信息与通信·paas
斌味代码1 小时前
Nginx 配置实战(2026最新版):反向代理+负载均衡+HTTPS+性能优化一网打尽
nginx·https·负载均衡
铭毅天下2 小时前
EasySearch Rules 规则语法速查手册
开发语言·前端·javascript·ecmascript
GISer_Jing2 小时前
AI Agent操作系统架构师:Harness Engineer解析
前端·人工智能·ai·aigc
英俊潇洒美少年2 小时前
css中专门用来提升渲染性能、减少重排重绘的属性
前端·css
天若有情6732 小时前
前端HTML精讲01:别再乱 div 一把抓,吃透语义化标签才是进阶第一步
前端·html