我有一个最新的Wordpress安装程序,并且在安全方面,我已经尽了最大努力。然而,我有一个反复出现的问题。
我已将配置置于安装位置上方的级别。
然而,偶尔会有一些东西写下一个新的wp-config.php
到安装位置,填写某人的详细信息。
我分析了Apache访问日志,发现:
[IP removed] - - [22/Nov/2019:17:45:06 +0100] "POST /wordpress//wp-admin/setup-config.php?step=2 HTTP/1.1" 200 1116 "-" "python-requests/2.9.1"
[IP removed] - - [22/Nov/2019:17:45:09 +0100] "POST /wordpress//wp-admin/install.php?step=2 HTTP/1.1" 302 368 "-" "python-requests/2.9.1"
[IP removed] - - [22/Nov/2019:17:45:09 +0100] "GET /wordpress/wp-admin/setup-config.php HTTP/1.1" 200 1487 "-" "python-requests/2.9.1"
[IP removed] - - [22/Nov/2019:17:45:10 +0100] "GET /wordpress//wp-login.php HTTP/1.1" 302 332 "-" "Python-urllib/2.7"
[IP removed] - - [22/Nov/2019:17:45:11 +0100] "GET /wordpress/wp-admin/setup-config.php HTTP/1.1" 200 2791 "-" "Python-urllib/2.7"
我不确定,但我怀疑无论他们在安装阶段发布了什么,都会导致Wordpress创建一个新的配置。由于攻击者没有有效的凭据、数据库或创建凭据的能力等,这似乎并没有为攻击者带来任何实际效果,但它确实设置了一个中断站点的配置,将所有访问指向安装程序页面。生成的配置如下所示:
<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the
* installation. You don\'t have to use the web site, you can
* copy this file to "wp-config.php" and fill in the values.
*
* This file contains the following configurations:
*
* * MySQL settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* @link https://codex.wordpress.org/Editing_wp-config.php
*
* @package WordPress
*/
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( \'DB_NAME\', \'[removed]\' );
/** MySQL database username */
define( \'DB_USER\', \'[removed]\' );
/** MySQL database password */
define( \'DB_PASSWORD\', \'[removed]\' );
/** MySQL hostname */
define( \'DB_HOST\', \'remotemysql.com\' );
[snipped]
我可能可以通过设置禁止访问安装程序的规则来防止再次发生,但WP肯定不应该允许这种情况,而且我找不到关于这个主题的任何其他内容。我是否遗漏了任何事情,无论是如何发生的,还是由此可能获得的结果?
Edit: 这似乎需要一些澄清。我相信这是WP被诱导向主目录写入一个新的配置文件,就像新安装的一样。它不是在更高级别上修改我的配置。它确实不是一种更广泛的妥协。
由于该站点目前不是关键站点,我已经开始将请求详细信息(POST params等)记录到文件系统中,我们将在下次发生这种情况时看到我得到的信息,这大致是每天都有的。