嗅探来自Fiddler的Android应用程序的HTTPS流量失败,只有Fiddler中的"Tunnel To"条目

Can*_*ğlu 11 https proxy android sniffing fiddler

我试图从我的root设备(4.4.4)捕获HTTPS流量,以分析应用程序的未记录协议.我已将我的Fiddler设置为代理并启用HTTPS嗅探.我在我的设备上安装了Fiddler生成的根证书.我在Android设备上为我的Wifi设置了代理.

  • 当我运行浏览器并导航到任何HTTP或HTTPS站点时,Fiddler可以成功捕获流量.

  • 当我运行一些应用程序(例如我自己的应用程序使用Parse作为其后端)时,我可以看到服务器的所有HTTPS流量,已解密.到现在为止还挺好.

  • 当我尝试运行该特定应用程序时,我无法让Fiddler捕获其流量.以下是我对Fiddler的全部看法:

在此输入图像描述

URL是一些IP地址:SSL(:443).

我也尝试过使用ProxyDroid.有趣的是,我能够捕获流量一次,看到解密的HTTPS连接到该应用程序的服务器,但在此之后,它再也没有捕获.我知道该应用程序使用HTTPS,而不是未知/其他协议.

如何成功捕获HTTPS流量,为什么Fiddler会为该应用程序工作,然后突然停止工作?

Can*_*ğlu 5

它似乎是特定于该应用程序的。我成功地嗅探了所有其他应用程序。该特定应用程序可能使用 SSL 固定:它检查自身内部的证书,并且不允许伪造证书,即使设备信任该证书。


Tal*_*ihr 5

“默认情况下,面向API级别24和更高级别的应用将不再信任用户或管理员添加的CA以进行安全连接”

如果您定位的API> = 24或在> = 24的设备上运行,请使用以下内容创建xml资源:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- Trust user added CAs while debuggable only -->
            <certificates src="user"/>
        </trust-anchors>
    </debug-overrides>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)

将其命名为“ network_secutrity_config.xml”或类似名称,并使用android:networkSecurityConfig标记添加ID作为对清单的引用。

您可以在这里阅读更多(它对我有帮助):

https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html