阿里云提示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这个文件,在文件的526行(不同的WordPress版本行数不同,可以搜索下面代码来找出这个位置)附近找到:

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

其实最新的WordPress这一段是这样子的:

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行左右找以下代码(最新版WordPress已经不需要修改这一项了。)

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

替换成:

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

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

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


发布日期:

所属分类: Wordpress 综合 标签:  


没有相关文章!