FiddlerCore如何解密HTTPS流量

本文关键字:HTTPS 流量 解密 何解密 FiddlerCore | 更新日期: 2023-09-27 18:26:52

我写了一个捕获https流量的小程序。我想捕获DECODED使用该软件获取和发布数据
正如你所知,Fiddler应用程序可以像魅力一样做到这一点,现在我正在寻找一种在我的程序中做到这一步的方法。

例如,这是我的代码:

   void FiddlerApplication_AfterSessionComplete(Fiddler.Session oSession)
        {
            this.Invoke(new MethodInvoker(delegate
            {
                oSession.bBufferResponse = true;
                txtLog.Text += "full-url : 'r'n" + oSession.fullUrl.ToString() + "'r'n-----------------------------------------------'r'n";
                txtLog.Text += "method : 'r'n" + oSession.oRequest.headers.HTTPMethod + "'r'n-----------------------------------------------'r'n";
                txtLog.Text += "request headers : 'r'n" + oSession.oRequest.headers + "'r'n-----------------------------------------------'r'n";
                txtLog.Text += "responce headers : 'r'n" + oSession.oResponse.headers + "'r'n-----------------------------------------------'r'n";
                txtLog.Text += "get request body as string : 'r'n" + oSession.GetRequestBodyAsString() + "'r'n-----------------------------------------------'r'n";
                txtLog.Text += "request body bytes : 'r'n" + oSession.requestBodyBytes + "'r'n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'r'n";
                txtLog.SelectionStart = txtLog.Text.Length;
                txtLog.ScrollToCaret();
            }));
        }

对于https网页,CCD_ 2中的CCD_

get request body as string : 
A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below.
Major Version: 3
Minor Version: 1
Random: 52 02 18 75 64 2D 8D 65 75 B9 C4 1B 58 76 92 3E 6B C5 BF 1D 3B D4 53 5D D2 FA CA D8 BF CE 02 5D
SessionID: empty
Ciphers: 
    [002F]  TLS_RSA_AES_128_SHA

这个握手部分是什么?我该如何解码
正如您所知,在安装的fiddler应用程序中有两个文件(TrustCert.exe和makecert.exe)
这些文件是什么?我可以在我的小应用程序中使用它们来解码数据吗?怎样

提前感谢

FiddlerCore如何解密HTTPS流量

FiddlerCore类库使用中间人方法解密HTTPS流量。

正如Fiddler一书中所讨论的:

HTTPS协议将加密(SSL或TLS)连接夹在中间HTTP请求和底层TCP/IP网络连接之间在其上发送这些请求。网络中介机构或因此,观察者无法查看或修改HTTP由于加密协议的使用,流量。你可能然后惊讶地发现Fiddler既可以查看也可以修改HTTPS流量(如果配置得当)。Fiddler通过使用HTTPS的"中间人"方法,这意味着在交谈时对于客户端,它假装是服务器,并且在与服务器,它假装是客户端。

HTTPS协议被明确设计为通过使用数字证书来阻止此攻击以验证HTTPS服务器的身份(以及可选的客户端)。当客户端从服务器接收到证书时通过确定是否链接到根证书颁发机构受客户端或操作系统信任。因为你通常在你自己的电脑上运行Fiddler,你可以重新配置你的浏览器或操作系统来信任Fiddler的根证书。做完之后因此,当客户端应用程序检测到流量受到Fiddler生成的证书的保护。

如果您的目标是将此功能嵌入到您的应用程序中,那么您应该在应用程序中简单地使用FiddlerCore——这就是它存在的原因!

至于你关于";握手"——握手是客户端和服务器如何就HTTPS通信的参数达成一致(例如,使用什么密码和密钥)。你不会"解码";握手本身——FiddlerCore为您处理这个问题。

您可能会感到困惑,因为HTTPS流量在HTTP CONNECT隧道内运行,而该隧道在FiddlerCore中也可见。为了确保您的HTTPS会话也被捕获,请确保在调用Startup方法时传递FiddlerCoreStartupFlags.DecryptSSL标志。此外,请确保makecert.exe与程序的可执行文件位于同一文件夹中。

此外,请记住,在会话已经完成处理之后设置bBufferResponse属性没有任何效果;你应该去掉它。