早在2018年4月7日披露,在Wordpress中,函数wp_http_validate_url存在对输入IP验证不当的漏洞,导致黑客可构造类似于012.10.10.10这样的畸形IP绕过验证,进行SSRF(Server-Side Request Forgery:服务器端请求伪造)。
修复方法
当前WordPress版本为5.6,编辑wp-includes/http.php,找到539行,代码如下:
$same_host = strtolower( $parsed_home['host'] ) === strtolower( $parsed_url['host'] );
将它注释或删除,并改成如下代码:
//$same_host = strtolower( $parsed_home['host'] ) === strtolower( $parsed_url['host'] ); $same_host = (strtolower($parsed_home['host']) === strtolower($parsed_url['host']) || 'localhost' === strtolower($parsed_url['host']));
继续往下至556行,代码如下:
if ( 127 === $parts[0] || 10 === $parts[0] || 0 === $parts[0]
将它注释或删除,并改成如下代码:
//if ( 127 === $parts[0] || 10 === $parts[0] || 0 === $parts[0] if ( 127 === $parts[0] || 10 === $parts[0] || 0 === $parts[0] || 0 === $parts[0]
保存后再验证,则提示漏洞已失效,恭喜WordPress的安全更上一层楼。
原创文章禁止转载:技术学堂 » WordPress IP验证不当漏洞修复方法