从安卓模拟器调试HTTPS



我有一个使用 https 与 Web 服务通信的 android(4.2) 应用程序。我想调试/记录每个发出的https。我有小提琴手和wireshark来调试它们,但一切看起来都是加密的。是否可以使用模拟器和Fiddler/Wireshark设置中间人攻击来解码和显示HTTP URL及其参数?

您可以使用 MITM 代理,例如 Burp。在设备/模拟器上将 CA 证书安装为受信任证书后,您将能够解密 SSL 流量。

此外,如果您有服务器私钥(即,它是您自己的服务器),如果确实需要低级信息,您可以解密使用 Wireshark 拦截的流量。

我发现最简单的选择是使用 mitmproxy。 此处列出了简单的步骤:

  • http://mitmproxy.org/doc/certinstall/android.html
  • http://danosipov.com/?p=557

我曾经有过同样的需求。

很好的解释可以在这里找到: https://security.stackexchange.com/questions/8145/does-https-prevent-man-in-the-middle-attacks-by-proxy-server

事实证明,有些公司会这样做,尤其是在移动浏览器(Opera,诺基亚)的情况下 - 为了节省带宽,他们会通过自己的代理服务器传递所有流量并进行压缩。有趣的是,它们也适用于启用HTTPS的网站。他们将他们的(有点假的)证书安装在您本地的受信任存储中,代理返回使用该假证书签名的压缩响应,以便浏览器不会抱怨潜在的攻击。

我还没有找到任何有助于创建此类代理的工具,因此最终(因为我控制了Web服务和运行它的服务器),因此我在开发过程中启用了纯HTTP。这可能为我节省了数小时的工作时间;)

是的,你可以使用Fiddler来做到这一点。您需要在Tools -> Options中启用"解密HTTP流量"选项。Fiddler 为 SSL 通信提供 CA 证书。您所要做的就是在您的Android设备上安装相同的内容。您可以通过从浏览器转到以下 URL 来获取证书

http://machinesIPAddress:8888/FiddlerRoot.cer

其中机器IPAddress是运行提琴手的机器的地址。安装后,您可以在下面看到相同的内容

设置 -> 安全 ->

受信任凭据 -> 用户选项卡

我用屏幕截图列出了整个过程。希望有帮助 -

使用 Fiddler Web 代理拦截 Android 网络调用

相关内容

  • 没有找到相关文章

最新更新