置信许多运用阿里云服务器的朋侪也会收到:

  1. WordPress 背景插件更新模块恣意目次遍历致使DOS破绽

  2. WordPress IP考证不当破绽

修复这两个破绽的最直接的要领就是立时升级到 WordPress 4.6.1 版本即可!

下面照样简朴说说这两个破绽,以及不升级4.6.1时应当怎样手动修复。

破绽1:WordPress 背景插件更新模块恣意目次遍历致使DOS破绽

形貌

wordpress背景文件/wp-admin/includes/ajax-actions.php中,对代码插件途径的输入参数plugin未举行准确的规范化转义,致使黑客可传入迥殊途径,形成拒绝服务。

修复要领

wordpress 4.5.4版本:

翻开WordPress背景文件/wp-admin/includes/ajax-actions.php,大概在3077行摆布找到以下代码:

  1. $plugin = urldecode( $_POST['plugin'] );

在它的下面增加一行:

  1. $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文件中搜刮找以下代码:

  1. if ( $plugin_update_data === true ) {

  2.     wp_send_json_error( $status );

  3. }

直接修正为:

  1. if ( $plugin_update_data === true ) {

  2.     $status['error'] = __( 'Plugin update failed.' );

  3.     wp_send_json_error( $status );

  4. }

在/wp-admin/includes/ajax-actions.php文件中搜刮找以下代码:

  1. if ( is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) {

  2.     $status['error'] = $wp_filesystem->errors->get_error_message();

  3.     }

  4.  wp_send_json_error( $status );

  5.  }

  6. }

直接修正为:

  1. if ( is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) {

  2.      $status['error'] = $wp_filesystem->errors->get_error_message();

  3.    }

  4. wp_send_json_error( $status );

  5. else {

  6. // An unhandled error occured

  7. $status['error'] = __( 'Plugin update failed.' );

  8. wp_send_json_error( $status );

  9. }

  10. }

至此,修正保留上传掩盖后即可胜利修复WordPress 4.5.4版本以下的WordPress背景插件更新模块恣意目次遍历致使DOS破绽。

破绽2:WordPress IP考证不当破绽

形貌

wordpress /wp-includes/http.php文件中的wp_http_validate_url函数对输入IP考证不当,致使黑客可组织类似于012.10.10.10如许的畸形IP绕过考证,举行SSRF

修复要领

找到/wp-includes/http.php这个文件,大概在文件465行:

  1. $same_host = strtolower$parsed_home['host'] ) === strtolower$parsed_url['host'] );

修正为:

  1. if ( isset( $parsed_home['host'] ) ) {

  2.     $same_host = ( strtolower$parsed_home['host'] ) === strtolower$parsed_url['host'] ) || 'localhost' === strtolower$parsed_url['host'] ) );

  3. else {

  4.     $same_host = false;

  5. }

修正保留上传掩盖后即可胜利修复IP考证不当破绽。

迥殊提醒

修复后,肯定要到阿里云背景“从新考证”或“疏忽”破绽,不然照样会一向发送信息的!