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

作者: 大叔 分类: 博客 发布时间: 2018-05-11 05:02

方案一:使用云盾自研补丁进行一键修复;
方案二:更新该软件到官方最新版本或寻求该软件提供商的帮助。

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

漏洞:
漏洞一:wordpress IP验证不当漏洞

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

1.2 修复
1.2.1 找到/wp-includes/http.php这个文件,大概在文件465行,修改文件前记得先备份http.php原文件,这是个好习惯:

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

1.2.2 在文件的 549行左右找到

if ( 127 === $parts[0] || 10 === $parts[0] || 0 === $parts[0]
修改为:
if ( 127 === $parts[0] || 10 === $parts[0] || 0 === $parts[0] || 0 === $parts[0]

漏洞二:wordpress后台插件更新模块任意目录遍历导致DOS漏洞

2.1 描述:wordpress后台文件/wp-admin/includes/ajax-actions.php中,对代码插件路径的输入参数plugin未进行正确的规范化转义,导致黑客可传入特殊路径,造成拒绝服务。

2.2 修复
2.2.1 找到/wp-admin/includes/ajax-actions.php。大概在文件2890附近,修改文件前记得先备份ajax-actions.php原文件

$plugin = urldecode( $_POST['plugin'] );
加上:
$plugin = plugin_basename( sanitize_text_field( wp_unslash( $_POST['plugin'] ) ) );

重新验证下漏洞

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!