一直在使用阿里云云服务器,当然小七博客没有放在阿里云上面,邮箱以及后台总或者经常收到短信提示“WordPress后台插件更新模块任意目录遍历导致DOS的漏洞”,可惜阿里云没有给出解决方案,需要修改可以购买提供的安骑士专业版进行修复。如果你使用其他程序,一会会收到你正在使用程序的漏洞等等,这个亲自实验了一下。
目前wordpress最新的4.6.1系列已经修复了这个漏洞,所以解决方案直接升级到最新版本就行。可是有一些用户的主题在升级到最新版可能出现兼容性问题,所以暂时不会升级,而且后台升级也是非常慢的或者根本就无法升级,嘿嘿。下面说说4.5.4以及以下版本的修复方案,在进行更改代码的时候,建议备份一份,防止修改出错能够马上恢复,最好把整站数据打包备份吧。
WordPress 4.5.4版本
我们只需要将打开WordPress后台文件/wp-admin/includes/ajax-actions.php,搜索以下代码:
- $plugin = urldecode( $_POST[‘plugin’] );
然后在这段代码后面添加以下代码即可:
- $plugin = plugin_basename( sanitize_text_field( wp_unslash( $_POST[‘plugin’] ) ) );
至此,修改保存上传覆盖后即可成功修复WordPress 4.5.4版本的WordPress后台插件更新模块任意目录遍历导致DOS漏洞。
WordPress 4.5.4版本以下
如果您使用的4.5.4以下的版本,那么可能还需要修改以下两个地方:(PS:如果某版本的以下2点中的代码已经跟修复后一样的就不用修改了):
1、在/wp-admin/includes/ajax-actions.php文件中搜索找以下代码:
- if ( $plugin_update_data === true ) {
- wp_send_json_error( $status );
- }
直接修改为:
- if ( $plugin_update_data === true ) {
- $status[‘error’] = __( ‘Plugin update failed.’ );
- wp_send_json_error( $status );
- }
2、在/wp-admin/includes/ajax-actions.php文件中搜索找以下代码:
- if ( is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) {
- $status[‘error’] = $wp_filesystem->errors->get_error_message();
- }
- wp_send_json_error( $status );
- }
- }
直接修改为:
- if ( is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) {
- $status[‘error’] = $wp_filesystem->errors->get_error_message();
- }
- wp_send_json_error( $status );
- } else {
- // An unhandled error occured
- $status[‘error’] = __( ‘Plugin update failed.’ );
- wp_send_json_error( $status );
- }
- }
修改保存上传覆盖后即可成功修复WordPress 4.5.4版本以下的WordPress后台插件更新模块任意目录遍历导致DOS漏洞。
当然你也可以忽略,不然阿里云会天天提醒您的,嘿嘿!简单的操作下来也就耽误几分钟的时间。在修复好之后,不要忘了去阿里云后台验证一下哦,不然提醒还在的哦!
其实从另一方面也说明了阿里云在于安全方面的提醒还是不错的,虽说是为了推广他家的安骑士专业版,但是也说明确实有问题呢,嘿嘿。