我有一个Android(4.2)应用程序,它使用https与Web服务进行通信。我想调试/记录每个出去的https。我有fiddler和wireshark来调试它们,但一切看起来都是加密的。可以使用模拟器和fiddler / wireshark设置中间人攻击来解码和显示http url及其参数吗?
答案 0 :(得分:2)
您可以使用MITM代理,例如Burp。在设备/模拟器上将CA证书安装为受信任后,您将能够解密SSL流量。
此外,如果您拥有服务器私钥(即,它是您自己的服务器),您可以解密使用Wireshark截获的流量,如果确实需要低级别信息。
答案 1 :(得分:1)
我发现最简单的选择是使用mitmproxy。这里列出了简单的步骤:
答案 2 :(得分:0)
我曾经有同样的需求。
原来有些公司会这样做,特别是在移动浏览器(Opera,诺基亚)的情况下 - 为了节省带宽,他们通过自己的代理服务器传递所有流量并压缩它。有趣的是,它们也适用于支持HTTPS的站点。他们在本地受信任的商店中安装了他们的(有点假的)证书,并且代理返回使用该假证书签名的压缩响应,以便浏览器不会抱怨潜在的攻击。</ p>
我还没有找到任何有助于创建这样一个代理的工具,因此最终(因为我控制了web服务及其运行的服务器)我在开发过程中启用了纯HTTP。这可能为我节省了数小时的工作量;)
答案 3 :(得分:0)
是的,您可以使用Fiddler这样做。您需要在Tools -> Options
中启用“解密HTTP流量”选项。 Fiddler为SSL通信提供CA证书。您所要做的就是在Android设备上安装相同的内容。您可以通过浏览器中的以下URL获取证书
http://machinesIPAddress:8888/FiddlerRoot.cer
其中machinesIPAddress是运行fiddler的机器的地址。安装完成后,您可以在
下看到相同内容设置 - &gt;安全 - &gt;可信凭证 - &gt;用户标签
我已经用截图列出了整个程序。希望有所帮助 -