【问题标题】:Why would some HTTPS requests fail to decrypt on Fiddler, while some works ?为什么有些 HTTPS 请求无法在 Fiddler 上解密,而有些则可以?
【发布时间】:2013-04-23 01:49:24
【问题描述】:

场景:我正在尝试通过 Fiddler 代理请求来调试 Android 应用。

我在 Android 设备上安装了 FiddlerRoot 证书,并且 SSL 解密适用于 大多数请求,但对于其他请求,我只能看到 HTTPS 连接,而 Fiddler 日志中没有其他内容。我认为可能是通过 SSL 的图像请求无法解密。

我已仔细检查“隐藏图像”是否已关闭等。检索到的图像托管在与应用程序对话的主 API 不同的域中。

什么可能导致这种行为?以及如何让图像请求显示在 Fiddler 中?

我正在使用最新的 Fiddler4。

【问题讨论】:

标签: android ssl https fiddler


【解决方案1】:

有很多关于如何使用 Fiddler 拦截来自 Android 的 HTTP(s) 流量的教程。 试试这个:http://docs.telerik.com/fiddler/configure-fiddler/tasks/configureforandroid

但是,当您尝试拦截和解密来自应用程序而非浏览器的 Android SSL 流量时,它会失败。

可能是应用程序使用了证书固定——您可能无法破译此连接。丢失的原因! 但更可能的是,原因是 HttpsUrlConnection 管道实现中的一个错误。

要解决此问题,请继续执行以下步骤:

  1. 在 Fiddler 中点击“规则->自定义规则”;
  2. 在脚本中找到函数 OnBeforeResponse
  3. 在函数体中添加如下代码:

    if (oSession.oRequest["User-Agent"].indexOf("Dalvik") > -1 &&
        oSession.HTTPMethodIs("CONNECT")) {
        oSession.oResponse.headers["Connection"] = "Keep-Alive";
    }
    
  4. 保存文件并重启 Fiddler。

【讨论】:

    猜你喜欢
    • 2011-05-12
    • 2020-07-25
    • 2017-01-27
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    相关资源
    最近更新 更多