java - 使用捕获的数据包从服务器向应用程序发送 http 响应

标签 java linux sockets http networking

我正在尝试模拟从 Web 服务器登录确认到 Windows 应用程序的响应。我有捕获的数据包,其中详细说明了服务器和应用程序之间成功登录的对话,因为它是我的应用程序,用于调试和 MIME 模拟以测试应用程序和网络安全。 communications create what I hope can be a custom foolout way to prevent a MIME 但我没有办法测试它,所以我在这里寻求指导。

我将如何模拟从服务器到应用程序的响应?

我对实现预期结果可能需要采取的方向有一些想法:

利用我的网络: 我有一台 Linux 机器设置为动态路由器、dhcp、路由,而我的 Linksys 路由器仅充当接入点和以太网交换机。

1: 在 Linux 机器上设置网络服务器。

2:将流量从应用端口重定向到Linux服务器。

3:运行服务器端脚本响应应用程序请求,使用捕获的数据包建立回放成功登录服务器。

所以,我对使用 Linux 工具有点陌生。我已经设置了一个 Linux 路由器,使用 Wireshark 捕获了基本信息,并且能够使用 VB、javascript 和一些 java 进行编程。除了我成功建立的一些简单的身份验证通信之外,我没有做过太多面向网络的编程。

我很感激能为我指明正确方向的任何信息!

最佳答案

大多数登录使用加密 (https/TLS),因此捕获数据包无济于事。

如果没有,数据包将形成一个 http 请求,您应该能够看到请求的格式,登录凭据是 GET 的 URL 的一部分还是 POST 的 http 正文的一部分。创建您自己的 http 请求并不难。

How are parameters sent in an HTTP POST request?

每个http请求后面都会有一个来自服务器的http响应,headers或body的格式会包含登录结果(http请求和响应的格式相似,但headers不一样)。

更复杂的登录可能涉及一系列请求/响应。

您需要编写一个更简单的服务器来接收请求和发送响应。鉴于您所知道的语言,Java 可能是您的最佳选择,而且网上还有大量示例。使用 JS 可能是可能的,但大多数情况下 JS 用于浏览器,因此不是一个很好的选择。 VB 是一种在 Linux 上不受支持的 Windows 语言。

关于java - 使用捕获的数据包从服务器向应用程序发送 http 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39935422/

相关文章:

java - 将日期作为参数从 JSP 发送到 servlet

c - 域套接字碎片

android - 将android设备与打印机连接并打印文档

C++ 相当于 java.nio.channels.Selector

Java JComboBox数组只显示一个元素

java - 用逗号作为小数分隔符解析Double的最佳方法?

java - 使用 ThreadLocal 作为数据上下文是个好主意吗?

python - 复制一个没有 scp 的 tar.gz 文件(使用 echo 或 cat)

linux - Fail2ban named-refused failregex 语法

linux - 在 Linux 中对文件具有可执行权限有哪些安全风险?