在我的 TCP 服务器上不断收到 GET 请求

Keep getting GET requests on my TCP server

我用非标准端口在python中制作了一个TCP server/listener脚本,主要是为了测试和学习。我不断收到这些看似随机的 GET 请求,如下所示:

GET /setup/index.jsp HTTP/1.1
User-Agent: curl/7.35.0
Host: xxx.xxx.xxx.xxx:yyyy
Accept: */*

我一直在阅读有关 cURL 和 HTTP 请求的信息,据我所知它会尝试请求文件。

但这还不是全部,因为它还包含一些在我将请求粘贴到此处时未呈现(未显示)的字符。当我让它打印我得到的输入时,python 输出如下所示:

这些请求的目的是什么?方块字符是什么东西吗?

此致

他们是扫描仪。通常是病毒或黑客在寻找易受攻击的服务器。你一直看到的奇怪的 [] 似乎是 \r\n header-separators,看来你的终端在显示 \r\n 风格的换行符时有问题。

it tries to request a file.

正确,它在这里尝试获取文件 /setup/index.jsp - 很可能存在一个服务器,该服务器具有可以从该特定文件中检测到的漏洞,如果您恰好在该服务器上有该文件,扫描器很可能会发起攻击,试图通过 /setup/index.jsp

侵入您的服务器

What is the purpose of these requests

增加僵尸网络的规模(人们花大价钱访问大型僵尸网络以进行 DDoS 攻击、IP 欺骗等),寻找有价值的信息(服务器是否用于存储信用卡信息?),等等就这样。

are the square characters something else that just nothing?

奇怪的字符是 carriage-return 个字符,您的终端似乎对它们有问题,或者您的 python 程序在将它们发送到终端之前破坏了 CrLf。 (您可以将输出通过管道传输到文件,然后在十六进制编辑器中查看输出以确认 - 如果十六进制编辑器显示换行符为 0D 0A,则您的终端有 carriage-return 问题,但如果不是 0D 0A,您的 python 应用程序在将数据打印到终端之前损坏了数据。)