我正在运行一个由 托管的 Web 服务器(没有root
)one.com
,我曾经编写了一个小“工具”,它通过 PHP `$_GET 将“正常”用户输入转换为有趣的字母。这个东西是 2000 年的东西,但人们仍然在使用它,所以我把它放在网上。
由于担心服务器受到攻击,我记录了所有包含大量特殊字符或“系统文件夹”名称或其他 *nix 命令的输入 - 现在,几年后我实际上收到了一个奇怪的输入:
../../../../../../../../../../../../../../../../../ETC/PASSWD
如果它没有自动下载,我猜我甚至都不会注意到(.txt
我将所有输入都推送到它上面,通常它会直接显示在 Chrome 中,但这次它开始下载这个 - 可能与文件大小有关,尽管我.txt
在 Chrome 中显示的比它大得多,而无需先下载它)
问题是:我应该担心吗?这看起来像是自动攻击吗?你曾经收到过类似的输入吗?我明白它的意思,但今天的服务器真的容易受到这种简单攻击吗?另外,为什么它要打印文件的内容呢?我的脚本将输入作为字符串处理,因此不应该以这种方式读取任何系统文件。
该$_GET
URL(DOMAIN/a.php/?get=test
)已在 Google 上列出,因此,如果它是一个机器人在浏览/尝试所有结果,我不会像有人告诉我我可能成为某些破解者的目标那样感到担心。
答案1
问题是:我应该担心吗?这看起来像是自动攻击吗?你曾经收到过类似的输入吗?我明白它的意思,但今天的服务器真的容易受到这种简单攻击吗?另外,为什么它要打印文件的内容呢?我的脚本将输入作为字符串处理,因此不应该以这种方式读取任何系统文件。
不用担心。这不是攻击,而是一个脚本或某种东西在探测你的服务器。所有网站/服务器一直都在被探测,你不能——找不到更好的词来形容——以任何方式把这种事情当成是针对你个人的,否则你会发疯的。
/etc/passwd
在这个特定情况下,在任何使用实际密码存储的系统上寻找密码都是相当初级和无意义的/etc/shadow
。我相信自 1993 年以来,几乎所有服务器的 99.999% 都是如此。
我不会担心,但话虽如此,也许您可以通过编写 PHP 脚本来“防火墙”以防止系统读取其运行目录之外的任意文件,从而减轻您的忧虑。
您的情况如何?如果不看代码的话很难说,但一般的原则是,您抓取任何给定的输入,然后清理它以满足您的数据输入需求。您不需要的任何数据格式都会被丢弃。
但一般来说,我不会因为这样的事情失眠。