破解者如何将 php 脚本上传到 Wordpress 的 wp-content 目录?

信息安全 php WordPress
2021-08-16 07:54:43

我看到一个网站被上传到 Wordpress 的 wp-content/uploads 目录而受到攻击。通常此目录用于用户上传的内容,如照片等。此特定服务器被配置为然后为 Internet 上的任何用户运行恶意脚本(知道正确的 URL)。

这是如何运作的?破解者如何在没有用户帐户的情况下让 wordpress 将 php 文件放在上传目录中?我这只是臭名昭著和不具体的“是的,wordpress 不安全”类型的问题?

3个回答

我不会说问题的根本原因是 Wordpress,而是以下事实:

  • 第三方开发人员提供了许多用于 Wordpress 的主题/插件,人们通常不会在安装它们之前对其进行审核。由于 PHP 的进入门槛非常低,许多第三方开发人员没有/很差的 IT 安全知识

我认为最可能的情况之一是使用允许匿名上传的插件/主题配置 Wordpress 设置。一个例子是Clockstone Theme upload.php 任意文件上传漏洞

基本上,你

  1. 需要确保不允许未经授权/匿名的上传
  2. 将上传的文件移出 Web 根目录
  3. 验证内容以确保仅上传和保存您期望的内容

OWASP 网站上的无限制文件上传页面对这个主题有一些很好的解释。

我同意插件和主题可能存在问题,但想再添加三个与插件使用相关的建议:

  1. 您应该确保您运行的是最新版本的 WordPress插件。
  2. 浏览您的插件并删除您真正不需要的任何内容。尽可能尝试用代码替换插件。
  3. 对下载插件更加挑剔(谁制作的,何时以及多久更新一次)。

第 3 方开发人员虽然最初可能缺少安全问题,但确实提供了更新以涵盖安全问题 - 但部分责任也在于 WP 用户。我忽略了更新,因为它们在短期内为我做了更多的工作,但从长远来看却带来了很多问题。

这是我们聘请的顾问的建议,以帮助我们在 .php 文件被黑客入侵后保护我们的网站。

在文本编辑器中创建一个空白文件。将其命名为 .htaccess 并在其中粘贴以下代码:

<Files *.php>
    deny from all
</Files>

现在将此文件上传到您的 /wp-content/uploads/ 文件夹中。

代码说明:此代码检查任何 PHP 文件并拒绝对其进行访问。