美文网首页
02 HTTPS 协议和 Fiddler 抓包

02 HTTPS 协议和 Fiddler 抓包

作者: oO反骨仔Oo | 来源:发表于2021-01-04 00:40 被阅读0次

    个人站点:http://www.669.icu

    Fiddler 默认情况下只会捕获 HTTP ,需要设置后才能捕获 HTTPS。

    2.1 HTTP 协议是不安全的

    浏览器发送给服务器的内 容非常容易被中 间人拦截到。

    image-20210102155440057

    如果浏览器发送一些敏感的数据,比如账号、密码、信用卡账户、银行账户给服务器,是非常危险的。

    2.2 Web 通信如何做到安全

    什么是安全?

    1. 浏览器和 Web 服务器之间的内容应该只有浏览器和 Web 服务器能看到通信的真正内容

    2. HTTP 请求的内容和 HTTP 请求的响应不会被第三方篡改

    我们马上就能想到各种加密算法,如非对称加密、对称加密、DES 、 RSA 等 。 对称加密是密钥同时扮演加密和解密 的角色 。只要这个密钥不公开给第 三者,同时密钥足够安全,我们就能确保安全问题。

    image-20210102155733718

    只有浏览器和 Web 服务器知道如何加密和解密它们之间的消息。

    image-20210102155815582

    Web 服务器与每个客户端使用不同的对称加密算法。

    image-20210102155950837

    2.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-20210102160405568

    Fiddler 会弹出 警告信息,单击“ Yes ”,信任证书。

    系统弹出警告框,单击“ Yes”安装证书。

    image-20210102160500262

    安装证书后,测试一下 Fiddler 能否捕捉 HTTPS 请求 。 打开 IE 浏览器,输入 https://www.baidu.com ,在 Fiddler 中查看是否捕捉到了 HTTPS 的 百度请求。

    2.4.1 添加例外绕过 HTTPS 证件错误

    虽然按照上面的操作,在 PC 上安装好了 Fiddler 的证书,但有时候,当使用 Fiddler,捕获 HTTPS 网站的时候,仍会出现连接错误 。

    image-20210102160700808

    单击“我己充分了解可能的风险 -> 添加例外->确认安全例外”,可以绕过证书错误。

    image-20210102160740933

    2.4.2 Firefox 中安装证书

    包括 IE 、 Chrome 和 Safari 在内的大部分应用都使用 Windows 证书库来验证证书。Firefox 浏览器是自己维护证书列表,所以需要单独安装 Fiddler 证书 。

    单独给 Firefox 安装证书:

    1. 单击 Fiddler Options 窗口的 HTTPS 选项卡 Actions 下面的 ”Export Root Certificate to Desktop“ 按钮,把证书导出到桌面。Fiddler 证书的文件名叫作 “FiddlerRoot.cer“
    image-20210102160955872
    1. 打开 Firefox,在菜单栏中选择工具 -> 选项 -> 高级 -> 证书

    2. 单击“查看证书”,打开证书管理器

    3. 在证书管理器界面中选择“证书机构飞单击导入,选择“ FiddlerRoot.cer”

    4. 在弹出的对话框中选中 3 个多选框。

    image-20210102161137499

    安装证书后,Fiddler 就能捕获 Firefox 发出的 HTTPS 请求了 。

    2.4.3 Fiddler 可以捕获 HTTPS 的握手验证请求

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

    image-20210102161328341

    HTTP Tunnel ( 也叫 HTTP 隧道 、HTTP 穿梭)是这样一种技术 :它用 HTTP 协议在要通信的 Client 和 Server 建立起一条 “ Tunnel“,然后 Client 和 Server 之间的通信都是在这条 Tunnel 的基础之上实现的。

    简单来说,当 Fiddler 当 作代理转发 HTTPS 请求的时候 ,就会产生“ CONNECT Tunnels ”。

    这些握手验证请求对我们没什么用 处 , 可以选择在 Fiddler 中将其隐藏掉。

    image-20210102161600375

    2.4.4 查看 Windows 本地安装的证书

    用以下两种方法可 以打开 Windows 证书管理器:

    1. 用键盘上的【Windows+R】快捷键调出【运行】窗口,在此窗口的输入框里输入【certmgr.msc】命令 。

    2. 在 Fiddler 的菜单栏中选择 Rules -> Fiddler Options -> HTTPS -> Actions -> Open Windows Certificate Manager,如图所示。在证书管理器中, 我们可以看到安装的 Fiddler 证书叫作“DO NOT TRUST FiddlerRoot ”

    参考

    • [书籍]:《HTTP 抓包实战》

    相关文章

      网友评论

          本文标题:02 HTTPS 协议和 Fiddler 抓包

          本文链接:https://www.haomeiwen.com/subject/bclmoktx.html