阿里云风险提示函数对输入IP验证不当,导致黑客可构造类似于012.10.10.10这样的畸形IP绕过验证修复办法

  • 阿里云风险提示函数对输入IP验证不当,导致黑客可构造类似于012.10.10.10这样的畸形IP绕过验证修复办法已关闭评论
  • A+

标题有点长,不过没有关系,只要方便大家搜索就ok,关于阿里云风险提示函数对输入IP验证不当,导致黑客可构造类似于012.10.10.10这样的畸形IP绕过验证处理办法,阿里云提示如下:

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

处理办法有两个,一个是在阿里云内部开头专业版,具体可根据阿里云相关提示进行操作,实现一键修复,免费的只能撑7天,过了7天试用期还是要收费,本人比较抠门,不想给。于是网上找了一下,终于有了解决办法,而且立马生效。【实践证明此法行不通】

步骤如下:

通过FTP把wordpress /wp-includes/目录下的http.php文件下载到桌面——使用代码编辑器打开编辑——修改wp-includes/http.http文件中大概在第553行,版本不一样可能有所差异——把原来的:

preg_match('#^(([1-9]?\d|1\d\d|25[0-5]|2[0-4]\d)\.){3}([1-9]?\d|1\d\d|25[0-5]|2[0-4]\d)$#', $host)

修改为:

preg_match('#^(([1-9]?\d|1\d\d|25[0-5]|2[0-4]\d|0+\d+)\.){3}([1-9]?\d|1\d\d|25[0-5]|2[0-4]\d)$#', $host)

效果立竿见影,修改后再回头去阿里云验证,风险提示消失,本人亲测,此法可解决。

不过,用了此法之后,次日我的站点就打不开,出现了这个提示:Error establishing a database connection,意思是建立数据库连接是发生错误,不知是否属于巧合,之前的网站一直好好的,一年多从未有此事发生,故而我还是先删除了改过的代码先,在观察看看,在此顺便也告知大家一下,以免与我一样的事情发生。

后面将持续关注,如果跟这个无关,届时再行更新。

后续:

经过一段时间的关注,可以肯定的告诉大家,此代码不行,会造成站点打不开,从2019年5月27号删除代码后,至今(2019.8.2),再也没有发生过同样的错误。特此声明下。

看来,能用的代码也只有之前用的,下面和大家分享一下别人的成果吧!代码如下:

可行的修复方法

1、在路径:/wp-includes/http.php找到 http.php 文件,用 Notepad++ 或其他编辑软件打开(修改之前记得先备份http.php原文件),大概在533行(不同的WordPress版本可能行数不同,你可以查找关键词进行查找):

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

 

2、在 http.php 文件的549行:

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

修改为:

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

漏洞修复完成

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