如何在PHP中使用“../../[...]../../ETC/PASSWD”对我的服务器进行可能的攻击?


1

我正在运行一个root托管的Web服务器(没有)one.com,我编写了一个小工具,通过PHP` $ _GET从“普通”用户输入中创建有趣的字母。这个东西是2000年,但人们仍然使用这个,所以我保持在线。

由于害怕对服务器的攻击,我记录了包含大量特殊字符的所有输入,或者包括“系统文件夹”或其他* nix命令的名称 - 现在,几年后我实际上收到了一个奇怪的输入:

../../../../../../../../../../../../../../../../../ETC/PASSWD

我甚至没有注意到我猜它是不是自动下载(这是.txt我推动所有输入,通常直接在Chrome中显示,但这次它开始下载 - 可能与此有关文件大小虽然我显示.txt的内容比Chrome中的大得多,但无需下载

问题是:我应该担心吗?这看起来像是自动攻击吗?你有没有收到类似的输入?我得到了它的说法,但今天的服务器真的容易受到这个简单的事情的影响吗?另外,为什么要打印文件的内容呢?我的脚本将输入作为字符串处理,因此不应该以这种方式读取系统文件。

$_GETURL( DOMAIN/a.php/?get=test)在谷歌上市,所以如果它是一个机器人的浏览/想所有的结果,我不会感到担心,因为我是,如果有人告诉我,我可能被一些饼干针对性。

Answers:


2

问题是:我应该担心吗?这看起来像是自动攻击吗?你有没有收到类似的输入?我得到了它的说法,但今天的服务器真的容易受到这个简单的事情的影响吗?另外,为什么要打印文件的内容呢?我的脚本将输入作为字符串处理,因此不应该以这种方式读取系统文件。

别担心。这不是攻击,而是脚本或探测服务器的东西。所有的站点/服务器都在被探测,你不能 - 因为缺乏一个更好的术语 - 以任何方式接受这种东西,或者你疯了。

在这种特殊情况下/etc/passwd,在任何/etc/shadow用于实际密码存储的系统上,搜索都是非常基本和无意义的。自1993年以来,我相信其中所有服务器的占99.999%。

我不会担心,但是说,也许你可以通过将PHP脚本编码为“防火墙”来反对系统读取其运行目录之外的任意文件来缓解你的想法。

在你的情况下如何做到这一点?很难说没有看到你的代码,但一般的理念是你抓住任何输入,然后清理它以满足你的数据输入需求。您不需要的数据中的任何格式都会被删除。

但总的来说,我不会因为这样的事情而失眠。


1
非常感谢兄弟,我也想到了“探测”的东西,但是我没有使用任何我自己没有在该服务器上编写的软件 - 也许主机服务本身运行这些调用
2875404 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.