您现在的位置是:

【验证可用】解决阿里云服务器报“wordpress IP验证不当”漏洞

Jkay 05-10 13:43:04 202

WordPress的小伙伴,在登陆阿里云服务器后台时,有时会看到这样的漏洞提示,“wordpress IP验证不当漏洞”:

下面是它后台里的文字说明:

标题: wordpress IP验证不当漏洞

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


修复方法其实很简单,找到提示目录所在的文件,当前网站目录里面的 /wp-includes/http.php ,打开这个 http.php 文件,修改一行代码就OK 。

wordpress 5.1 版 的修改方法如下(最新版wordpress5.2 同理)

找到 http.php 文件里的这一段,在大概 545 行左右

if ( isset( $parsed_home['host'] ) ) {

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

} else {

$same_host = false;

}

把其中的

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


至此,已经修改完毕。


有些老版本的wordpress可能还需要第二处修改(新版本的wordpress,比如我所知道的5.1版本,已经不用修改第二处了。)

563 行左右的 这一句。下图中的已经是对的如果不是,就需要修改成下图这样。


其实很好辨认的,如果是旧版本,只有一个 ||逻辑运算符

就需要多添加一个 ,像上图那样, $parts[0] 总共出现三次就是对的


(老版本WordPress此处这样修改)

/*将这一行代码 删除 */

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

/* 并添加修改为这样 */

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



修改后,在阿里云后台提交验证:

验证成功。

说明漏洞修改完毕。

总结一下,出现报错后,只用修改第一处就行。每次wordpress系统版本自动更新后,都要修改一下 http.php 文件,然后重新验证。这样阿里云就不会报wordpress IP验证不当漏洞”错误了。

为什么写这篇文章,是因为我自己遇到这个问题之后,搜解决方法,结果很多都是错的。主要是在第二处修改上,其实最新版的已经不用修改了。还有第一处,很多人写的修改方法对小白理解来说会产生错误。比如下面这个:


其实就是替换一行代码就行,而不是替换一段。我觉得好的技术教程,应该是小白都能看懂的。而不是产生歧义。

下面是某度的搜索结果,搜 wordpress IP验证不当前7篇文章里涉及到第二处的修改,只有两篇是对的。


甚至在这两篇里,关于第一处修改,也是这样写的:


如果按照文章写的这样改,依然是个错的。

你会说,某度确实是这样,那谷歌呢?很遗憾,谷歌的也是,如果严格要求的话,谷歌是这样的:


这个漏洞修改,说简单真的简单。但为什么很多文章就是写不明白呢?我猜,大概是因为,他们很多都是复制粘贴的。或者因为,他们自己并没有遇到这个问题。还因为,只是简单地没有写明白而已。

此文献给阿里云后台的关,毕竟,它最关心我们服务器上的小漏洞了。

关注我

公众号: 清单自由

ID名: free10s

一个干净的公众号

分享能分享的一切

期待你的关注~

本栏推荐

最新文章