相信很多使用阿里云服务器的朋友也会收到如下信息:
WordPress 后台插件更新模块任意目录遍历导致DOS漏洞
修复这个漏洞的最直接的办法就是马上升级到 WordPress 4.6.1 版本即可!
下面还是简单说说这个漏洞,以及不升级4.6.1时应该如何手动修复。
漏洞:WordPress 后台插件更新模块任意目录遍历导致DOS漏洞
描述
wordpress后台文件/wp-admin/includes/ajax-actions.php中,对代码插件路径的输入参数plugin未进行正确的规范化转义,导致黑客可传入特殊路径,造成拒绝服务。
修复方法
wordpress 4.5.4版本:
打开WordPress后台文件/wp-admin/includes/ajax-actions.php,大概在3077行左右找到以下代码:
$plugin = urldecode( $_POST['plugin'] );
在它的下面添加一行:
$plugin = plugin_basename( sanitize_text_field( wp_unslash( $_POST['plugin'] ) ) );
至此,修改保存上传覆盖后即可成功修复WordPress 4.5.4版本的WordPress后台插件更新模块任意目录遍历导致DOS漏洞。
wordpress 4.5.4版本以下:
WordPress 4.5.4版本以下的,除了要按照WordPress 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漏洞。
标签: wordpress建站教程
还木有评论哦,快来抢沙发吧~