由于 PHP 的安装方式存在漏洞(共享 VPS 与 PHP 安装为 Apache 模块而不是 CGI)以及 OSCommerce 的配置方式(某些目录上的安全性为 777),我在朋友的网络服务器上发现了许多 PHP 脚本已被黑客加载。使用多层加密隐藏了实际代码。他们有一个 PHP 文件,其中有一个巨大的字符串分配给变量 $str。然后他们使用以下代码将字符串解密为恶意 PHP 代码,并尝试通过访问该页面来运行它。用于解密编码字符串的语句是eval(gzinflate(str_rot13(base64_decode($str))));
他们现在无法从该目录运行代码,因为有一个 .htaccess 文件阻止执行该文件夹中的脚本,因为我们发现系统已被入侵,所以这是一个临时修复,但可能不是最好的.
我在我的 Mac 上运行的 linux vm 上运行了这个脚本,同时将上面的语句更改为,echo(gzinflate(str_rot13(base64_decode($str))));以便我可以看到源代码。为了这里的人们的兴趣,我把它放在了pastebin上。
据我所知,这似乎是一个非常复杂的脚本,它尝试了各种技巧来访问您的服务器,但我对 PHP 不够熟悉,无法识别所有可能试图利用的漏洞。如果我可以假设他们在过去的某个时候成功地运行了这个,我应该在我的系统上执行哪些检查?