我管理一个运行许多WordPress站点的Ubuntu服务器。今天早上,他们中的一个倒下了,显示出一个例外。
PHP Fatal error: Namespace declaration statement has to be the very first statement or after any declare call in the script in /var/www/vhosts/new.wearesno.com/httpdocs/wp-content/plugins/w3-total-cache/Cache_File_Generic.php我在终端中使用nano查看了该文件,它看起来很正常--在打开的标记之后直接使用名称空间声明。但是,当我将该文件下载到我的Windows PC时,我可以看到它包含以下内容:

然后,我下载了服务器上所有站点的备份,并搜索了$GLOBALS;$,并在文件顶部找到了大量包含类似内容的文件。
据推测,这是某种允许攻击者远程访问服务器的外壳。有没有人特别认识到它是什么?
我希望,由于CloudFlare背后的站点,攻击者不知道源服务器的实际IP地址,所以如果他们在服务器上打开套接字,攻击者不知道要连接的IP,但我不能100%肯定。
任何关于如何最好地保护服务器的建议都是开放的。
发布于 2020-09-03 10:21:06
我不知道这个脚本具体是做什么的,你可能是对的,但是它连接到远程服务器并在你的网站上放一些恶意软件、广告或其他东西并不是不可能的,所以在这种情况下,不要假设你是受Cloudflare保护的。
如果您不知道您的服务器发生了什么,我的方法通常是烧掉所有的东西,用git的代码创建一个新的服务器。显然,这取决于您有一个不在此服务器上的代码的副本。还有一个数据库备份--否则你需要通过你的代码来排列我的行,你可以下载wordpress和你的插件、主题的新副本。基本上不要再信任服务器上的任何东西了。
IMHO,防止这类攻击的最佳保护措施是让所有代码只读给您的and服务器用户--因此,假设您有一个运行apache或fpm的www-data用户,那么就让其他一些用户,bob,所有文件的所有者,并给予www-data只读访问权。
这种方法有一些缺点,如果您想使用wordpress管理来进行更新、安装插件等等--但是很容易在短时间内更改文件所有者,并将其更改回来,或者更好地完成计算机上的所有更新,将所有内容提交给git,并使用git将其放到服务器上。
此外,确保您总是运行最新版本的wordpress和您的插件,还保持apache/nginx/fpm更新和服务器的其他部分。
https://security.stackexchange.com/questions/237899
复制相似问题