我有一个最新的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等)记录到文件系统中,我们将在下次发生这种情况时看到我得到的信息,这大致是每天都有的。
最合适的回答,由SO网友:Rob Pridham 整理而成
结果证明这真的很愚蠢。
由于最初调试过程中的一个错误,现场有一份Wordpress安装的副本,即。/wordpress
, 从不设置。如果您将安装解包到错误的级别,然后向上复制而不是移动它,就会发生这种情况。
回想起来,日志显然将此称为请求,但我忽略了它,认为它与文件系统有关。
攻击利用一组安装参数推测性地攻击了另一个安装,然后生成了上述级别的配置。这破坏了正确的网站。然而,幸运的是,随后访问坏站点的尝试也失败了,因为无论出于何种原因,它都会产生重定向循环。因此,没有取得任何成果。
SO网友:Rick Hellewell
我在一个共享服务器上安装了多个可湿性粉剂和非可湿性粉剂的客户端上遇到了类似的问题。wp config文件获得一些插入的代码,并将随机的PHP文件以及插入的代码放置在各种(和添加的)索引中。php。
我用非常强的密码重置了所有凭据(主机、数据库、管理员等)。我更改了文件的权限(某些更改的文件已添加“执行”),但没有任何效果。而且文件的日期在修改时不会改变,所以很难感觉到。
我已经编写了一个文件哈希检查器,它在一个单独的表中比较所有文件的哈希。这提醒我问题再次出现,但我还没有找到感染点。我看过几乎所有的嫌疑犯。(由于我还没有找到罪犯,显然我还没有找到“正确的”嫌疑人。)
我在所有WP站点上安装了两个不同的安全插件;仍然受到攻击。(幸运的是,攻击插入的代码工作不正常,因为插入的代码取决于wp options表中的特定值。但这很恼人……)并使用htaccess规则保护wp config文件;这也没有阻止它。
我注意到wp posts表有一些插入的记录,所以您可以在那里查看。我还没有在wp选项表中看到任何内容。
因此,查看每个php文件中插入的代码;查找具有“执行”权限集的文件;更改所有凭据(托管、ftp、数据库、主数据库、管理员);在wp users表中查找隐藏用户;寻找修改过的插件(手动删除并重新安装,希望可以保存设置);与主题相同;散列所有内容都是一些想法。
但我将继续关注这一点,因为我还没有找到我们两个问题的完整解决方案,但希望我的经验能有所帮助。
Added
我找到了这个资源,它可能会为您提供额外的保护想法:
https://www.owasp.org/index.php/OWASP_Wordpress_Security_Implementation_Guideline . 那里的许多建议可能是适当的。YMMV。
您可以考虑删除安装。php文件-安装后不需要它。不确定是否将其放回WP版本更新。