如何捕获和回放针对多个 Web 服务器的 http Web 请求?

如何捕获和回放针对多个 Web 服务器的 http Web 请求?

我的总体目标是在捕获 HTTP Posts 到 Web 应用程序时不中断生产系统,以便我可以对来自已关闭应用程序的遥测数据进行逆向工程。我可以控制 HTTP Posts 的发送方,但不能控制接收方 Web 应用程序。

看来我需要一个请求“分叉”代理。这是一种反向代理,它将请求推送到两个端点,一个主端点和一个从端点,只将主端点的响应转发回请求者。我不是服务器极客,所以可能存在类似的东西,但我不知道我正在寻找什么的专业术语。

另一种可能性是一个简单的日志代理。捕获 Web 请求的日志。重写日志以定位我的“从属”Web 应用程序。使用 curl 或其他工具回放日志。

谢谢您的帮助。

答案1

想到了 wireshark、ettercap、tcpdump 和 snort。几乎任何 libpcap 应用程序都可以做到这一点。您可以尝试 freshmeat.net 或 sourceforge.net 来寻找数据包捕获应用程序。我相信有人开发了一些东西可以让您进行 WWW 重放/分析。

如果你能控制源头,你甚至可以在中间放置一个路由器,这样你就可以捕获流量。这就是中间人攻击的工作原理。

但是,如果不使用 snort 编写一些复杂的规则,我不确定您能多么轻松地获取所需的数据。tcpdump 可以将每个“事务”写入文件,但是,您仍然需要对生成的文件进行一些解码。

如果 POST 机器使用 https://,任何解决方案都可能会有问题

答案2

尝试 burpsuite。BurpSuite

免费版本允许您代理请求/响应。然后您可以修改和重放这些请求/响应。专业版为您提供了一些不错的扫描工具。

检查免费版本,看看它是否适合您。

答案3

另外三个选项:

浏览器附加组件:邮差对于 Chrome 或REST客户端对于 Firefox,这些允许您重播请求。

作为桌面应用程序,一个非常强大的应用程序是Fiddler适用于 Windows,也可用于 Mono 框架下的 Linux/Mac (alpha)。

答案4

如果您想从浏览器重新发送/回放捕获的请求,则需要在浏览器中进入 Web 开发人员模式并查看网络请求。然后右键单击感兴趣的请求,在大多数现代浏览器中,都有一个选项复制为 cURL之后,您可以将生成的命令粘贴到终端中,并根据需要使用该curl工具重新运行捕获的命令。某些浏览器(例如 Mozilla)还提供在浏览器内编辑和重新发送的选项。

相关内容