使用fiddler抓HTTPS包及原理解析

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

网上已经有许多教程了,大部分都差不多,如果是首次安装并且步骤齐全的话,应该是比较容易抓到HTTPS包的。但是我找的教程不全,导致后面踩了很多坑,故记录一下以免后人踩坑。顺便科普了一下HTTPS和中间人攻击,如有误欢迎指出~

修正:本文中的HTTPS握手过程仅为小白科普所用,旨在用最简单的方式描述整个流程,真实场景要更为复杂,大家如果想要了解更多可以查找相关书籍资料哦。

首次装fiddler过程

 

1.官网下载fiddler安装包,并安装。

 

2.安装完之后,设置fiddler的HTTPS代理,如图,把所需要的勾选上。并且在Connections里面把Allows remote computers to connect。

Allows remote computers to connect:因为安卓连pc为远程连接,所以要勾选上。

Capture HTTPS CONNECTs:抓取HTTPS连接。

Decrypt HTTPS traffic:对HTTPS包解码。

Ignore server certificate errors:忽略服务器证书错误,勾选了后面就不用自己一个个手动确认啦(当然,这个个人考虑是否选择)

 

 

3.设置PC浏览器上的HTTPS代理为:127.0.0.1:8888(fiddler默认代理)

这个我是在cmd里面直接 set https_proxy=127.0.0.1:8888 设置的,如果你没有设置,打开fiddler后它会有提示,点击一下它就会帮你设置了。

 

4.pc和手机连接同一个局域网,并设置手机的代理为pc的ip以及fiddler的端口号(默认为8888)

手机的代理设置(安卓):在连接的wifi,长按,然后里面会有代理设置,填上对应的ip和端口号就行了。

 

                                         

 

5.在手机上安装fiddler证书

进行了上述配置,在浏览器中打开输入代理服务器IP+:8888,浏览器会打开如下页面:         

                                                                                                                                                                                                                                                   

 

然后点击下面的FiddlerRoot certificate,安装证书。

 

6.打开fiddler,在手机上访问https的网页或者程序,fiddlers输出抓包内容,即为成功。

 

当然了,我肯定没成功,不然我就不会一个晚上都在找为什么不对了。那么上面缺失了什么步骤呢?

 

失败原因

 

1.没有使用fiddlercertmaker去生成证书

安卓和IOS设备无法使用fiddler默认生成的HTTPS拦截证书,要解决这个不兼容问题,要使用此证书生成插件,来生成和IOS/安卓兼容的证书。

 

2.在发现自己抓不到HTTPS包后,重装,但没有把证书卸载干净

第一次重装之前,我把手机上的证书卸载了,电脑上的证书没有卸载。包括浏览器上的证书、电脑中的认证证书、还有电脑中保存的关于fiddler使用的RSA生成的东西。导致后面,电脑和手机的证书不一致,无法抓取HTTPS包。

 

安装fiddler的正确姿势

 

1.官网下载fiddler安装包,并安装。

 

2.安装fiddlercertmaker,使用,并重启fiddler,保证fiddler后面生成的证书是由此插件生成的。

 

2.安装完之后,设置fiddler的HTTPS代理,如上图,把所需要的勾选上。并且在Connections里面把Allows remote computers to connect。

 

3.在Tools->Options->点击Actions,选择export Root certificates to Desktop,然后把证书导入到浏览器中。以保证浏览器中的证书和手机端的证书是一样的。

 

3.设置PC浏览器上的HTTPS代理为:127.0.0.1:8888(fiddler默认代理)。

 

4.pc和手机连接同一个局域网,并设置手机的代理为pc的ip以及fiddler的端口号(默认为8888)。

 

5.在手机上安装fiddler证书。

 

6.打开fiddler,在手机上访问https的网页或者程序,fiddlers输出抓包内容,即为成功。(分享一个成功页面)

 

 

浅析fiddler抓HTTPS包原理

 

我装了这么久的原因,就是没有意识到电脑端和手机端的证书要一致。如果我理解了fiddler的原理,大概一下子就找到问题所在了。所以在这里,我来分析一下fiddler是怎么做到把https包拿到并解析的。

 

https协议建立连接过程

 

要想知道fiddler是如何做到抓https包的,首先我们要来看看https的建立连接的握手过程是怎么样的。https协议,建立连接时使用的是非对称加密(SSL/TSL握手),连接建立起来后传输时使用的是对称加密。最后确认的密钥就是用来对称加密的密钥。下图是建立SSL握手的过程:

               

                          

  

流程比较简单,主要复杂的地方在于两个点:client如何通过校验数字证书来确定server是真实可信的?双方到底是如何确定最终使用的密钥的?

 

数字证书的校验

 

CA证书内含有:数字签名、hash算法、认证机构、公钥等。

数字签名:其实质就是server使用私钥加密的一个hash串。

认证机构:颁发证书的机构,client用此来确认这个证书是有效的。

整个认证过程是怎么样的呢?

首先,client拿到证书,检验颁发机构是否可信。若可信,它会用公钥解密数字签名,得到一个hash串A。然后用hash算法加密hash串A,得到hash串B。如果hash串B和数字签名完全相同,说明数字签名没被篡改,server是真正要通信的server,校验通过。

文字描述有点混乱,它们的关系如下图。

 

              

 

密钥的确认

 

前面的握手握手过程中,有三个神秘的随机数。它们的作用就是用来生成最终的密钥。为什么要用随机数呢?因为本身握手建立过程传输的数据是明文的(除了最后一个随机数用公钥就加密),而多个随机生成的密钥不容易被暴力破解。

上图中双方确认密钥的过程其实是极度简化了,client和server在这时会互相发一条通知消息和一条用密钥加密的消息。

通知消息:用来通知对方后续的消息都用密钥加密。

用密钥加密的消息:双方都会给对方发送第一条用密钥加密的消息,如果对方能够解密出来,说明双方协商的密钥是一致的,握手完成。

 

                         

 

fiddler抓包原理

 

如果要简单明了地说明fiddler的角色,只要三个字,伪装者。fiddler在client面前,就伪装成真正的server;在server面前,就伪装成真正的client。它通过在握手过程中的双向伪装,拿到client和server通信用的密钥,这样就能解密得到它们的通信消息了。

如果要说明fiddler的真正角色,也很简单,fiddler干的事实质就是一个典型的中间人攻击。问题来了,什么是中间人攻击?

 

中间人攻击

看一下wiki对中间人攻击的定义:

中间人攻击(英语:Man-in-the-middle attack,缩写:MITM)在密码学和计算机安全领域中是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。

仔细瞅瞅,fiddler干的不就是这事吗?(fiddler内心:我冤枉啊!)但问题又来了,这个中间人也不好当,他得骗过client和server,而client又是通过数字证书来校验的,他又是怎么做到的呢?

 

fiddler充当中间人过程

 

   

 

过程大概如图示,中间的关键部分说明一下。

 

fiddler的伪造证书是如何生效的

当然是我们手动信任的啦。我们在安装fiddler的时候,fiddler会生成证书,这个时候我们就要在手机和pc上自行安装和信任证书,让fiddler当一个合法的中间人。

这也是fiddler和其他的中间人攻击的不同:真正的中间人攻击,是通过病毒、漏洞等一些不合法的行为在用户端偷偷地装上自己的不合法证书,从而来达到攻击的目的。

所以呀,大家不要随便连陌生wifi,下载什么乱七八糟的软件,不然很可能会被装上乱七八糟的私发证书哦。

 

以上就是全部内容啦,感谢观看我的fiddler小白历险记(鞠躬),感兴趣的同学还可以继续找一下怎么使用fiddler的插件willow来配合食用,以及中间人攻击的多种手段,防御方式等等~

 

教你用Fiddler捕获HTTPS请求 简单的说就是我们与服务器进行通信,会先获取服务器的证书,进行校验校验过程是用本地的可信根证书进行校验,而装入fiddler的根证书后,fiddler可以伪造证书,获取我们与服务器通信的秘钥,进而破解我们的通信。6、在“Telerik Fiddler Options”中“HTTPS”中,点击“CertEnroll engine”,在弹出的“Certificate Creation Preferences”中,选择Engine“MakeCert”,然后点击“OK”,生成对应证书。_哔哩哔哩_bilibili。 阅读详情

相关推荐

Fiddler之【 https请求 】详解教程

之前,先了解一下Fiddler。   Fiddler是一款免费且功能强大的数据取软件。它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。fiddler含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。

m0_70618214的博客 2万+

接口测试之FiddlerHTTPS请求

2、打开HTTPS配置项,勾选“CaptureHTTPS CONNECTs”,同时勾选“Decrypt HTTPS traffic”,弹出的对话框选择“是”(即安装fiddler自己的证书)。6、在“Telerik Fiddler Options”中“HTTPS”中,点击“CertEnroll engine”,在弹出的“Certificate Creation Preferences”中,选择Engine“MakeCert”,然后点击“OK”,生成对应证书。软件测试全栈系列课程。...

m0_37449634的博客 1702

fiddler支持https协议分析,彻底解决fiddler无法https

目前使用https的网站越来越多了,https比http复杂多了,本文详细介绍了https遇到问题的解决办法。以及手机移动端开发如何https

robinhunan的博客 2819

FiddlerHTTPS最强攻略

对于想HTTPS的测试初学者来说,常用的工具就是fiddler。可是在初学时,大家对于fiddler如何HTTPS真是伤了脑筋,可能你一步步按着网上的帖子成功了,那当然是极好的。 有可能没有成功,这时候你就很狂了,我把一些我的安装经验和网络上的教程进行了整合(其中注意事项及10、11步骤)。 下面为大家演示如何用fiddlerHTTPS的详细教程。如若失败,请先仔细检查...

diankejue6264的博客 4121

浅谈HTTPS以及FiddlerHTTPS协议

最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同时取到HTTPS和HTTP协议,设置只是很小的一步,关键是了解HTTPS协议的原理FiddlerHTTPS协议的原理,然后才能更好的理解如何进行设置。本文主要由三部分组成,第一部分用比较通俗形象

稻草人技术博客 5988

从笔记整理fiddler用到的一些功能

一些简单的原理认知 工具所接触过的有wireshark、fiddler、charles、和 没有了...(贫乏的技能又摊牌了 只能对这仨的原理来一个比对了,fiddler和charles的原理都是一样的,即启动一个代理服务器(8888),开始中间商赚差价(不是 是)来取HTTP、HTTPS请求;而wireshark从本质出发监听网卡,所以能取所有协议的 脑袋瓜子的疑问打开了:https基于ssl/tsl安全套接字的超文本传输协议,fiddler又怎么解决公私钥这个问题呢?---- 那就

m0_57857310的博客 261

https该怎么

很多新手学习fiddler都会对https网站难或者不起来的问题无所适从,想寻求解决办法,下面我进行简单介绍一下https的方法。 有的网站是https类型的,使用fiddler的时候会提示证书有问题,甚至无法访问,这时候该怎么办呢? 最典型的网站就是目前的百度网站了,百度在近些年采用了https的技术,也算是前沿领域的一个先导者吧,所以我们还是有必要向它看齐的,今天咱们的任...

陈娟的博客 1万+

Fiddler使用介绍及分析(详解)

fiddler详细的使用介绍

weixin_44901808的博客 2万+

Fiddler原理解析

Fiddler原理解析 由于大多数的接口过分依赖前端界面限制,影响接口的健全性,比如:某个促销商品的限购数量是两件,在进行界面校验时是正确的,若接口不做校验,这是如果有人绕过前端界面直接到接口,修改限购数量,此时接口依旧是可以通过的。这将会造成损失,所以必须要做接口测试。 在做接口测试时,必须要又详细的接口文档,接口测试通常是接口自动化测试的,又接口文档就可以直接进行使用了。 ...

qq_42445025的博客 6732

Fiddler】从零开始学习Fiddler

因为要开始学习接口测试,fiddler是一个很好的工具而且免费好用,特开一贴来记录fiddler的学习历程。 Fiddler的工作原理 打开Fiddler之后会自动给电脑创建一个系统代理,默认端口为8888,。在客户端和服务器之间获得通讯的信息,并且以会话的形式呈现给我们。 Fiddler的代理模式 1.流模式(Streaming): 可以理解为一种实时通信的模式,请求之后实时返...

1万+

十四、Fiddler工具详细教程 — FiddlerHTTPS请求(一)

普及下SSL/TLS证书握手原理SSL/TLS证书分为单向认证和双向认证,通过下面的两张图可以简单的了解一下原理。 单向认证:双向认证:在之后的正常加密通信过程中,Fiddler如何在服务器与客户端之间充当第三者呢? 服务器—>客户端:Fiddler接收到服务器发送的密文,用对称密钥解开,获得服务器发送的明文。再次加密,发送给客户端。 客户端—>服务端:客户端用对称密钥加密,被Fiddler截获后,解密获得明文。再次加密,发送给服务器端。由于Fiddler一直拥有通信用对称密钥y, 所以在整个HTTPS

测试-八戒 1503

HTTPS 原理以及fiddler解密

https原理HTTPS是通过一次非对称加密算法(如RSA算法)进行了协商密钥的生成与交换,然后在后续通信过程中就使用协商密钥进行对称加密通信。图一 https请求全过程证书以及fiddler根证书什么是CACA是Certificate Authority的缩写,也叫“证书授权中心”。它是负责管理和签发证书的第三方机构,CA必须是所有行业和所有公众都信任的、认可的,具有足够的权威性。什么是CA证书CA 证书,顾名思义,就是CA颁发的证书。什么是证书之间的信任关系?就是用一个证书来证明另一个证书是真实可信滴。

Tester_muller的博客 3329

fiddler原理解析

一、fiddler简介 Fiddler是一款免费且功能强大的数据取软件。它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。fiddler含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。 二、Fiddler工作原理 Fiddler是位于客户端和服...

卷卷的博客 1万+

fiddler配置及使用教程

Fiddler布局设置: View->Default Layout 左右布局 View->Stacked Layout 上下布局 Fiddler代理,通过AutoResponder的Add Rule,然后Enable rules来实现。

zzy7075的专栏 4898

fiddlerapp获取不到HTTPS请求的2个解决方案

因为app要过等保(国家信息安全等级保护),要用到fiddler。 碰到fiddlerapp获取不到HTTPS请求,经验证发现以下2个解决方案可用。共享下。 原理解析: 安卓手机APP时, HTTPS报文通过MITM代理后证书不被信任,导致不了。 以下的2个解决方案都通过验证可行。 方案一、工具+模拟器 ——Xposed+JustTrustMe((可以在手机上安装,需要root权限,但是有风险))+夜神 1、下载安卓模拟器并安装 直接用最新版即可。推荐夜神模拟器最高版。用过

luoshufeng1234的博客 6130

记录一次Fiddler**不知名看番APP的经历

1.配置Fiddler允许监听https 首先我们本次的目的是HTTPS, 因此我们需要开放Fiddler的相关权限才行 打开Fiddler菜单项Tools->Fiddler Options 选中decrypt https traffic和 ignore server certificate errors两项

qq_26431723的博客 1145

遇难题?Fiddler证书与HTTPS/HTTP详解,兼谈非标准协议困境

针对HTTPS不到:代理设置正确。核心关键:安装并信任Fiddler根证书到目标设备(PC或手机)的信任库。忽略此步,HTTPS必定失败。若怀疑证书锁定,需复杂操作(逆向修改App),通常不推荐且困难。针对非HTTP/HTTPS协议不到:使用底层工具(如Wireshark)捕获原始网络流量(网卡层面)。分析TCP/UDP端口、连接模式、数据特征来推测协议类型。尝试应用已知协议(如WebSocket, QUIC)的解析器。对于私有协议,Wireshark只能显示原始字节流。

afei__aibianc的博客 1584

HTTPS以及FiddlerHTTPS协议

一、浅谈HTTPS 我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的。目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度、谷歌等。HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。网上有诸多资料,有些写得过于晦涩难懂,尤其是需要密码学的一些知识。我做

阿喵的博客 4068

fiddler工作原理以及https解密方法

fiddler是一个工具,是一个官方免费的一般用5.0 fiddler的下载地址https://pan.baidu.com/share/init?surl=cAscwQ密码时lwaa fiddler是一款互联网代理调试工具,是一款国外软件,有汉化版,不仅能取电脑和手机与互联网http通讯,同时还能查看他们进行分析,在必要的时候可以修改某些通讯实现前后端开发者调试的作用。 支持所有的浏览器...

perfect88888的博客 7857
上一篇: redis 学习记录
lianup
博客等级 码龄9年 24粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值