WEB主题公园[www.themepark.com.cn]用心做最好的原创中文WordPress主题!

WordPress技术博客 news
您现在的位置:首页 > WordPress技术博客 > 近期wordpress被检测出漏洞的解决方法

本周推荐网站模板

WordPress主题视频教程

最近更新的WordPress主题
最新更新过的网站模板

近期wordpress被检测出漏洞的解决方法

发布时间:2016/10/27 WordPress技术博客 新闻资讯 181 0

wordpress是一款非常优秀的开源程序,更新速度也非常的快,因此漏洞很快就会被新的版本给更新好。

但是任何一款程序都是会有漏洞的,所以才会不断地有更新,那么下面我们就对近期wordpress在第三方检测工具,如360网站卫士检测平台,阿里云扫描等等检测出来的一些漏洞进行分析。

那些漏洞是什么原因造成的,以及临时的解决方法。

wordpress WP_Image_Editor_Imagick漏洞

这个漏洞准确的来说并不是wordpress的漏洞,而是由于ImageMagick这个PHP图像处理模块爆出的“0day”漏洞所引发的。

ImageMagick是什么

ImageMagick是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布,它遵守GPL许可协议,可以运行于大多数的操作系统,ImageMagick的大多数功能的使用都来源于命令行工具。

这个应用程序所出的漏洞需要ImageMagick出来新的版本进行更新之后才能修复,如果你的服务器商没有更新这个lo那么如果我们希望能够马上修复好这个漏洞,只能是使用临时的方法去修复了,通过修改wordpress的一些代码来禁用ImageMagick,就能达到修复的目的:

在wp-includes/media.php中搜索
$implementations = apply_filters( 'wp_image_editors', array( 'WP_Image_Editor_Imagick', 'WP_Image_Editor_GD' ) );

修改为

$implementations = apply_filters( 'wp_image_editors', array('WP_Image_Editor_GD','WP_Image_Editor_Imagick' ) );

若不想修改wordpress源代码,那么可以在你的主题function.php文件中添加(WEB主题公园的付费用户请在widget.php中添加)如下代码:
add_filter( 'wp_image_editors', 'cmp_change_graphic_lib' );
function cmp_change_graphic_lib($array) {
return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
}

这样就能够解决这个漏洞的问题了。

 

wordpress后台插件更新模块任意目录遍历导致DOS漏洞

这个漏洞是在WordPress后台文件/wp-admin/includes/ajax-actions.php中

代码插件路径的输入参数plugin未进行正确的规范化转义,导致黑客可传入特殊路径,造成拒绝服务。

修复的方法:

1.在文件ajax-actions.php的3068行附近:

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

在这段代码后面加上:

$plugin = plugin_basename( sanitize_text_field( wp_unslash( $_POST['plugin'] ) ) );

2.在文件ajax-action.php中大概3004行:

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 ); }

3.找到3025行:

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 ); } }

这样这个漏洞就修复完成了。

 

目前wordpress4.6.1版本在第三方检测工具中检测到的漏洞大概就是这两个漏洞了,如果你还通过其他的渠道检测出来漏洞或者有更好的方法解决也可以分享给大家。

 

WordPress原创主题,高端网站模板建站,网站模板建站资源以及开发知识分享,尽在WEB主题公园

如未标明出处,所有文章均为WEB主题公园原创,如需转载,请附上原文地址,感谢您的支持和关注。

============关于WEB主题公园=============

WEB主题公园致力于开发适合中国人习惯的中文WordPress网站模板,并提供全程视频教程,让您能够轻松的使用网站模板建立好自己的网站!

分享WordPress开发,网站维护经验,分享更多有用的WordPress知识

WEB主题公园--做最好的中文原创WordPress主题,网站模版。