- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我写了一个小程序来捕获 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();
}));
}
和 get request body as string
in txtLog
对于 https 网页如下:
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 流量。
正如在 Fiddler book 中讨论的那样:
The HTTPS protocol sandwiches an encrypted (SSL or TLS) connectionbetween HTTP requests and the underlying TCP/IP network connectionupon which those requests are sent. Network intermediaries orobservers are thus prevented from viewing or modifying the HTTPtraffic thanks to the use of the cryptographic protocols. You mightthen be surprised to learn that Fiddler can both view and modify HTTPStraffic if configured appropriately. Fiddler achieves this by using a“man-in-the-middle” approach to HTTPS, which means that when talkingto the client, it pretends to be the server, and when talking to theserver, it pretends to be the client.
The HTTPS protocol is explicitly designed to block this attack by using digital certificatesto authenticate the identity of a HTTPS server (and optionally theclient). When a client receives a certificate from the server, itvalidates that the certificate itself is trustworthy by determiningwhether it is chained to a Root Certification Authority that istrusted by the client or the operating system. Since you are typicallyrunning Fiddler on your own computer, you can reconfigure your browseror operating system to trust Fiddler’s root certificate. After you doso, the client application will not complain when it detects thattraffic is being protected by Fiddler-generated certificates.
如果您的目标是将此功能嵌入到您的应用程序中,您应该在您的应用程序中简单地使用 FiddlerCore——这就是它存在的原因!
关于您关于“握手”的问题——握手是客户端和服务器如何就 HTTPS 通信的参数达成一致(例如,使用什么密码和 key )。您无需“解码”握手本身——FiddlerCore 会为您处理。
您可能会感到困惑,因为 HTTPS 流量在 HTTP CONNECT
隧道内运行,并且该隧道在 FiddlerCore 中也是可见的。为确保您的 HTTPS session 也被捕获,请务必在调用 Startup
方法时传递 FiddlerCoreStartupFlags.DecryptSSL
标志。此外,请确保 makecert.exe
与程序的可执行文件位于同一文件夹中。
此外,请记住,在 Session 已经完成处理后设置bBufferResponse
属性没有任何效果;你应该删除它。
关于c# - FiddlerCore如何解密HTTPS流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18099240/
我在我的一个应用程序中使用 fiddlercore,但问题是当我退出应用程序并使用此代码退出应用程序时 private void Form1_FormClosing(object sender, Fo
是否可以使用 FiddlerCore 的自定义根 CA 来拦截 HTTPS 流量。 我需要的是分配一个用于签署所有主机证书的证书。 另一种解决方案是在创建根证书之前向 FiddlerCore 提供证书
我成功地使用 C# 中的 FiddlerCore API 拦截来自特定 Web 主机的 Web 响应并捕获 JSON 数据。 当我的应用程序正在运行和捕获数据时,FiddlerCore API 似乎阻
我正在尝试使用 FiddlerCore 监控流量和 WebBrowser Controller,我有以下代码在 C# 中捕获 Web 请求 private void button1_Click
我有一个应用程序,我正在尝试使用 FiddlerCore 拦截它的请求。 使用 Fiddler,我看到请求如下: /image/bhUqK.png (HTTP 连接隧道到 HTTPS 请求) 使用 F
我正在用 c# 开发一个程序,它允许我捕获 WebBrowser1 发出的请求。 我的问题是“请求数据”总是空的。我不明白我必须将“webBrowser1.Navigate”命令放在哪里。 目前我的代
我正在使用 FiddlerCore 来捕获 HTTP 请求。只要手动安装了 Fiddler 证书,一切正常,包括 SSL 捕获。我一直通过 Fiddler 的选项菜单使用手动安装,效果很好。 但是,如
在我的项目中,每个客户端请求都会有一个自定义 HTTP header ,用于指定客户端想要使用的上游代理(网关)。有关于如何在 FiddlerCore 中使用上游代理的文档,但这似乎是一个全局设置,而
我正在尝试构建一个代理服务器来处理本地请求。 例如 - 捕获 Web 浏览器打印请求并将它们发送到适当的 LAN 打印机。 到目前为止,我的想法是在 Windows 服务中托管 FiddlerCore
我从一个我想用 FiddlerCore 解析的站点得到了一个奇怪的响应。在 chrome 开发者工具中,如果我检查它看起来完全正常的响应,在 fiddler 中则不然。代码片段如下(以前工作正常) S
我正在尝试集成 C# Web 浏览器控件和 Fiddler Core。我不想通过让 Fiddler Core 监听 Web 浏览器控件而不影响任何 Internet Explorer 或其他 Inte
我已经下载了 fiddlercore DEMO,我尝试在我的依赖于 WPF 的应用程序中使用它,然后我有一个问题,在我的应用程序中我无法捕获 https 响应资源? enter image descr
使用“Fiddler”应用程序,我可以将 HTTP 原始响应保存为文本文件。然后使用“AutoResponder”选项卡我可以做这样的事情: URI: http://www.request.com/f
我需要能够监视从 IE 发出的所有请求(HTTP 和 HTTPS)。我只对 header 和 cookie 感兴趣,因此不需要解密 SSL 加密正文。但我没有看到在不启用解密SSL的情况下将 Fidd
我希望能够做的:在将 HTTP 请求发送到服务器之前编辑它们 用户在浏览器中导航到他们选择的网页 > 他们遇到他们想要编辑的请求 > 他们编辑请求然后发送到服务器而不是原始请求。 到目前为止我做了什么
我正在使用 Fiddler。 当我捕获请求时,它是一个 Fiddler.Session 对象。 我已经搜索这个对象几个小时了,但找不到Request Payload。 我已经搜索了所有的属性,也许我跳
我能够毫无问题地运行 FiddlerCore 演示(随包提供)。我看到我的 PC 上同时记录了 http 和 https 流量。 我现在的目标是对我的 iOS 流量做同样的事情,但我不知道我错过了什么
SSL 流量解密、iOS 应用程序和 FiddlerCore 的名义三重奏是我试图达到的 chalice 。 到目前为止我没有做的警告: 1)证书必须被iOS设备信任;如果不是,例如 Safari 会
我试图使用 Fiddlercore 在 Firefox 中捕获 HTTP/HTTPS 流量,但我收到错误“此连接不受信任”。我曾尝试将代理设置更改为使用系统代理并添加了 FiddlerCore 证书,
我是一名优秀的程序员,十分优秀!