wordpress IP验证不当漏洞解决方法

支付宝红包

近日使用阿里云服务器搭建wordpress个人博客系统,云盾里检查到又漏洞。

本文的亮点在最后,如果你和我一样,没有找到http.php 这个文件,解决方式请看文末

漏洞信息

阿里云

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

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

如何解决

找到对应的 /wp-includes/http.php,我的wordpress 4.9.8 版本在文件中的 533 行,代码截图

阿里云我们需要把这行代码修改为

阿里云
具体代码
旧代码

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;
}

验证漏洞是否修复

再次点击阿里云验证,如下图

 

好,我们最后说一下,http.php 文件没有找到的解决办法!

我遇到这个问题,一开始以为是wp的版本问题,后来查看了很多资料,也升级wp到最新版,但是还是没有,最后才找到原因:竟然是因为wp-includes 目录下文件太多,我使用的是宝塔控制面板,结果每页显示的文件数量有限,换言之,这个http.php的文件,跑到第二页去了。

如果你也是没有找对位置,就看看这个吧!

阿里云

声明:本文为原创,作者为 霍常亮,转载时请保留本声明及附带文章链接:https://www.huochangliang.com/2018/09/30868