2018-10-25 · Blog

Wordpress IP验证不当漏洞

最近在阿里云控制台一致提示 Wordpress IP验证不当漏洞。看着挺烦人的,下面是从网络上找的漏洞修复方法,验证有效。

漏洞分析

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

备份源文件

cp wordpress/wp-includes/http.php wordpress/wp-includes/http.php.back

修改代码

vim wordpress/wp-includes/http.php

在第533行找到如下代码:

$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']));

再找到第549行的代码:

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

修改为:

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

顺便说下 vim 显示行号的命令是 :set nu, 跳转行号的命令是 :number

验证

修改完以上内容,然后再到阿里云盾控制台重新验证一下漏洞,就会发现漏洞已经不存在了。