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

时间:2015-09-17 12:59:34

标签: android https proxy fiddler sniffing

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

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

  • 当我运行一些应用程序时(例如我自己的应用程序使用Parse作为其后端),我可以看到服务器的所有HTTPS流量,已解密。到目前为止一切顺利。

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

enter image description here

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

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

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

3 个答案:

答案 0 :(得分:3)

“默认情况下,面向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>

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

对于遇到此问题的其他人......

Fiddler停止在我的机器浏览器和设备上处理https流量。重新安装/重新启动Fiddler证书后,我的机器浏览器再次开始使用https工作,但设备仍然坏了。

为了让设备再次运行,我必须明确信任设备上的新证书,方法是使用设备的浏览器打开网站http://<adapter IP>:8888/FiddlerRoot.cer,然后信任证书。 / p>

我找到了这个答案here