wordpress4.9.6 IP验证不当漏洞修复

问题解答 2018-05-30 1,290 次浏览 0 条评论
文章目录[隐藏]

登录阿里云后台 有漏洞安全修复提示,危险的级别尽快修复,同时给出ECS服务器管理重要通知:您的云服务器(xxx.xx.xxx.xx)由于被检测到对外攻击,已阻断该服务器对其它服务器端口(UDP:ALL)的访问,阻断预计将在2018-05-23 09:56:58时间内结束,请及时进行安全自查。

若有疑问,请工单或电话联系阿里云售后。 阿里云经常提示有wordpress IP验证不当漏洞,实际上这个漏洞影响并不大,阿里云只是为了让你购买它的付费版的云盾服务器安全服务(安骑士)。其实我们自己手动就可以修复这个漏洞,下面是如何修复漏洞的方法。

漏洞名称:wordpress IP验证不当漏洞

补丁编号:7292650

补丁文件:wp-includes/http.php

补丁来源:云盾自研

漏洞描述:

wordpress /wp-includes/http.php文件中的wp_http_validate_url函数对输入IP验证不当,导致黑客可构造类似于012.10.10.10这样的畸形IP绕过验证,进行SSRF。

【注意:该补丁为云盾自研代码修复方案,云盾会根据您当前代码是否符合云盾自研的修复模式进行检测,如果您自行采取了底层/框架统一修复、或者使用了其他的修复方案,可能会导致您虽然已经修复了改漏洞,云盾依然报告存在漏洞,遇到该情况可选择忽略该漏洞提示】

漏洞修复方法:

找到wp-includes/http.php这个文件,在文件的532行(不同的WordPress版本行数不同,可以搜索下面代码来找出这个位置)附近找到:

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

最新的WordPress 4.9.6 这一段是这样子的:

if ( isset( $parsed_home['host'] ) ) {
		//$same_host = strtolower( $parsed_home['host'] ) === strtolower( $parsed_url['host'] );	
 
	} else {
		$same_host = false;
	}

这里,霜天上一张图给大家看

我们换成:

if ( isset( $parsed_home['host'] ) ) {
 
		$same_host = (strtolower($parsed_home['host']) === strtolower($parsed_url['host']) || 'localhost' === strtolower($parsed_url['host']));
 
	} else {
		$same_host = false;
	}

 

 

补充更新: 如果你的 WordPress 版本不是最新版,在 541行左右找以下代码(最新版WordPress4.9.6已经不需要修改这一项了。)

if ( 127 === $parts[0] || 10 === $parts[0]

替换成

if ( 127 === $parts[0] || 10 === $parts[0] || 0 === $parts[0]

如果发现上面这行代码跟源文件中的一样,则不用修改了,最新版 WordPress 已经是这样的代码了。。

修改完之后,登录阿里云,打开云盾服务器安全,找到这个漏洞,在后面点击验证一下,验证通过之后,就不提示这个漏洞了。

 

不会代码怎么办?

升级到最新的wordpress,下载如下链接,解压,替换源文件即可。

下载地址:https://www.i5seo.com/2/http.php.tar.gz

 

我还没有学会写个人说明!

Leave a Reply