个人站点:http://www.669.icu
Fiddler 默认情况下只会捕获 HTTP ,需要设置后才能捕获 HTTPS。
2.1 HTTP 协议是不安全的
浏览器发送给服务器的内 容非常容易被中 间人拦截到。
image-20210102155440057如果浏览器发送一些敏感的数据,比如账号、密码、信用卡账户、银行账户给服务器,是非常危险的。
2.2 Web 通信如何做到安全
什么是安全?
-
浏览器和 Web 服务器之间的内容应该只有浏览器和 Web 服务器能看到通信的真正内容
-
HTTP 请求的内容和 HTTP 请求的响应不会被第三方篡改
我们马上就能想到各种加密算法,如非对称加密、对称加密、DES 、 RSA 等 。 对称加密是密钥同时扮演加密和解密 的角色 。只要这个密钥不公开给第 三者,同时密钥足够安全,我们就能确保安全问题。
image-20210102155733718只有浏览器和 Web 服务器知道如何加密和解密它们之间的消息。
image-20210102155815582Web 服务器与每个客户端使用不同的对称加密算法。
image-202101021559508372.3 什么是 HTTPS
HTTPS 就是加过密的 HTTP 。使用 HTTPS 后,浏览器客户端和 Web 服务器传输的数据是加密的,只有浏览器和服务器端知道内容。
HTTPS = HTTP+TLS 或者 SSL。采用 HTTPS 的网站需要去数字证书认证机构(Certificate Authority, CA)申请证书。
通过这个证书,浏览器在请求数据前与 Web 服务器有几次握手验证,以证明相互的身份,然后对 HTTP 请求和响应进行加密。
2.4 Fiddler 如何捕获 HTTPS 会话
默认情况下,Fiddler 不会捕获 HTTP 会话,需要进行设置:启动 Fiddler,在菜单栏中单击 Tool -> Fiddler Options -> HTTP,选中“Decrypt HTPS traffic”,同时选中“ Ignore server certificate errors”来忽略一些证书错误。
image-20210102160405568Fiddler 会弹出 警告信息,单击“ Yes ”,信任证书。
系统弹出警告框,单击“ Yes”安装证书。
image-20210102160500262安装证书后,测试一下 Fiddler 能否捕捉 HTTPS 请求 。 打开 IE 浏览器,输入 https://www.baidu.com ,在 Fiddler 中查看是否捕捉到了 HTTPS 的 百度请求。
2.4.1 添加例外绕过 HTTPS 证件错误
虽然按照上面的操作,在 PC 上安装好了 Fiddler 的证书,但有时候,当使用 Fiddler,捕获 HTTPS 网站的时候,仍会出现连接错误 。
image-20210102160700808单击“我己充分了解可能的风险 -> 添加例外->确认安全例外”,可以绕过证书错误。
image-202101021607409332.4.2 Firefox 中安装证书
包括 IE 、 Chrome 和 Safari 在内的大部分应用都使用 Windows 证书库来验证证书。Firefox 浏览器是自己维护证书列表,所以需要单独安装 Fiddler 证书 。
单独给 Firefox 安装证书:
- 单击 Fiddler Options 窗口的 HTTPS 选项卡 Actions 下面的 ”Export Root Certificate to Desktop“ 按钮,把证书导出到桌面。Fiddler 证书的文件名叫作 “FiddlerRoot.cer“
-
打开 Firefox,在菜单栏中选择工具 -> 选项 -> 高级 -> 证书
-
单击“查看证书”,打开证书管理器
-
在证书管理器界面中选择“证书机构飞单击导入,选择“ FiddlerRoot.cer”
-
在弹出的对话框中选中 3 个多选框。
安装证书后,Fiddler 就能捕获 Firefox 发出的 HTTPS 请求了 。
2.4.3 Fiddler 可以捕获 HTTPS 的握手验证请求
当浏览器访问 HTTPS 网页的时候,Fiddler 能捕获到很多握手验证的请求,比如用浏览器打开 https://www.baidu.com,在 Fiddler 中就能抓到很多“ Tunnel to”的请求。
image-20210102161328341HTTP Tunnel ( 也叫 HTTP 隧道 、HTTP 穿梭)是这样一种技术 :它用 HTTP 协议在要通信的 Client 和 Server 建立起一条 “ Tunnel“,然后 Client 和 Server 之间的通信都是在这条 Tunnel 的基础之上实现的。
简单来说,当 Fiddler 当 作代理转发 HTTPS 请求的时候 ,就会产生“ CONNECT Tunnels ”。
这些握手验证请求对我们没什么用 处 , 可以选择在 Fiddler 中将其隐藏掉。
image-202101021616003752.4.4 查看 Windows 本地安装的证书
用以下两种方法可 以打开 Windows 证书管理器:
-
用键盘上的【Windows+R】快捷键调出【运行】窗口,在此窗口的输入框里输入【certmgr.msc】命令 。
-
在 Fiddler 的菜单栏中选择 Rules -> Fiddler Options -> HTTPS -> Actions -> Open Windows Certificate Manager,如图所示。在证书管理器中, 我们可以看到安装的 Fiddler 证书叫作“DO NOT TRUST FiddlerRoot ”
参考
- [书籍]:《HTTP 抓包实战》
网友评论