今天习惯性打开阿里云.突然发现云盾提醒“WordPress IP验证不当”,具体信息是“wordpress /wp-includes/http.php 文件中的 wp_http_validate_url 函数对输入 IP 验证不当,导致黑客可构造类似于 012.10.10.10 这样的畸形 IP 绕过验证,进行 SSRF”。对于解决办法 emmmmmm.个人感觉这种就像某60杀毒一样.但是对于强迫症玩家来说.孰能忍,婶也不能忍.开始着手修复漏洞.
开始修复
打开网站所在在路径wp-includes/http.php找到http.php文件.首先保存一份.
在第545行(wordpress版本为5.2.0),
将 $same_host = strtolower( $parsed_home['host'] ) === strtolower( $parsed_url['host'] );
替换为
if (isset($parsed_home['host'])) {
$same_host = (strtolower($parsed_home['host']) === strtolower($parsed_url['host']) || 'localhost' === strtolower($parsed_url['host']));
} else {
$same_host = false;
};
然后在第567行
将
if ( 127 === $parts[0] || 10 === $parts[0]
替换为
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] 即可
这样.修改完和修改之前有区别吗?对于复制粘贴过来的.呸