记录HTTP和HTTPS浏览器流量,并解密后者


14

是否可以将所有HTTP和HTTPS浏览器通信(包括请求,响应,完整的标头和正文)保存到计算机上的文件中?

HTTPS通信必须保存解密。

理想情况下,我会寻找诸如Firefox或Google Chrome扩展程序之类的东西。

它必须在Linux上运行。

Answers:


4

HAR是HTTP存档,并且正是您要保存的内容(它包括未加密的HTTPS)。

幸运的是,这现在是所有主流浏览器的基本功能(不是您问这个问题时才使用的)。不再需要第三方扩展。

在Firefox(v41 +)中:

  • 在网络模式下启动Firefox开发人员工具(右上菜单>开发人员>网络,或ctrl-shift-Q)
  • 重现目标方案
  • 通过右键单击网格并选择“全部保存为HAR”来保存捕获
  • 将捕获结果导出到HAR文件

其他浏览器:

在所有浏览器的最新版本中,您可以轻松保存HAR:

https://toolbox.googleapps.com/apps/har_analyzer/


6

HTTPFox是可以完成此工作的Firefox扩展。

===编辑===

右键单击请求面板,然后单击“复制所有行”。然后,您可以将其保存到喜欢的编辑器中-例如Openoffice电子表格。请查看我提供的图像。

回答


我不这么认为。我刚刚安装了HttpFox 0.8.9,但看不到任何将所有记录的流量保存到文件的方法。请注意,我有数千个HTTP(S)请求,并且我不愿意单击一千次来保存所有请求。请说明如何使用HttpFox保存所有数据。
pts

长官,我确实是这样认为的。查看我的答案的修改。
slotishtype 2011年

1
@slotistype:谢谢您的澄清图片。我之前对复制所有行一无所知,因此按照您的建议进行了尝试。使用您提供的图像很容易找到它。不幸的是,它没有复制HTTP请求和响应主体,因此这不是我的问题的解决方案。
pts

@点我不好。只是注意到了。我不知道另一种工具,除非您安装了Firefox以外的东西。祝你好运
slotishtype 2011年

FYI HttpFox有一个Content选项卡,在其中我可以查看响应正文-某些请求除外,它说Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED)。但是我需要所有请求的响应主体,因此HttpFox不能解决此问题。
pt

3

Fiddler绝对不是您的扩展而是单独的应用程序,您绝对应该考虑。


1
抱歉,Fiddler对我不起作用。因为它需要Microsoft Windows。我有Ubuntu。正如我最初要求的那样,浏览器扩展可能会在多个操作系统上运行。
pts

3

我找到了想要这样做的答案,但这里没有一个答案适合我,因为我需要转储HTTPS响应主体,就像OP。因此,对于那些像我一样落在这里的人,这就是我所发现的。

我最终找到了mitmproxy,它不是Firefox扩展,但确实实现了记录所有Firefox流量的目标。所有都是Python,所以我安装了它pip install mitmproxy-如果愿意,请使用软件包管理器。

首先mitmproxy进行初始设置/调试,然后mitmdump在工作和优化后将其用于转储。

我只是将Firefox设置为127.0.0.1:8080用作代理服务器(8080是mitmproxy的默认端口),我看到了我所有的Firefox通信都通过mitmproxy。要启用HTTPS流量,您必须接受mitmproxy创建的证书-设置代理后,只需在Firefox中转到http://mitm.it的“魔术地址” ,单击“其他”按钮,然后选中复选框信任证书,然后单击“确定”。

要转储未加密的响应正文,我必须使用一个非常简单的内联脚本

from libmproxy.model import decoded

def response(context, flow):
    with decoded(flow.response):  # automatically decode gzipped responses.
        with open("body.txt","ab") as f:
            f.write(flow.response.content)

要点 -下载为save_response.py并与一起使用mitmdump -s save_response.py。应对机构将开始筹集资金body.txt

mitmproxy还具有许多有用的过滤器,您可以将其指定给mitmdump来获取所需的内容。


2

httpFox,httpScoop(仅限Mac)和httpWatch(仅IE,Firefox,Windows)都是我用来执行此操作的工具。此外,您还可以尝试Fiddler(如前所述),如果您使用的是Mac,则可以尝试Charles Proxy。我个人最喜欢的是httpWatch(您可以轻松过滤标题,内容,URL等),但这很昂贵,因此可能不是一个选择。

您可能还需要查看HAR项目(HAR代表HTTP Archive),这是一种基于标准的方法来记录http事务,标头,内容等。提到的许多工具都可以导出您的HAR文件以供使用HAR Viewer(如果您已经看过Firebug中的瀑布功能,将会很熟悉)。实际上,您可以使用Firebug以及使用NetExport为您生成这些文件/日志。

FWIW httpScoop是在无线网络上调试/跟踪HTTP流量的好方法,我前段时间写了一篇有关此操作的文章:http : //blog.adtools.co.uk/trace-debug-mobile-application-http-请求使用macos /


您提到的哪些工具可以将所有已记录的通信转储保存到磁盘?httpFox不能。httpScoop仅适用于Mac,我一直在寻求Linux解决方案。httpWatch仅适用于Windows,我一直在寻求Linux解决方案。Fiddler仅适用于Windows,我一直在寻求Linux解决方案。Charles Proxy仅适用于Mac,我当时正在寻求Linux解决方案。感谢您提到Firebug + NetExport,它可能会起作用。
pts 2012年

Firebug + NetExport在Linux上对我来说就像是一种魅力。他们导出未加密的SSL流量(正如我所希望的那样)。我很高兴接受您的回答,但请先删除所有其他主张(或将其移至单独的回答)。
pts 2012年

1

Wireshark可用于捕获网络数据包(包括http协议层中的内容),并将其保存到您的计算机中。它还可以捕获https信息,但是我怀疑您是否可以将其配置为解密任何内容。


1
感谢您提出Wireshark的建议,但由于它不保存解密的HTTPS流,因此它对我的问题没有任何答案。
pts

2
如果您拥有私有服务器证书,则 Wireshark可以解密自上一个版本以来的SSL流量。
cweiske 2011年

1
我没有专用服务器证书。
pts
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.