WordPress IP验证不当漏洞修复

作者: 快乐哈哈 分类: PHP,漏洞修复 发布时间: 2018-11-20 09:18 阅读:620次 百度已收录

昨天才从Emlog迁移到Wordpress,今早阿里云就发现了WordPress IP验证不当的漏洞,路径为:wp-includes/http.php

经查发现在这里面有一处检验规则漏洞,文件中的wp_http_validate_url函数对输入IP验证不当,导致黑客可构造类似于012.10.10.10这样的畸形IP绕过验证,进行SSRF。

源代码的第540行中,调用了preg_match方法对传入的IP地址进行校验,这里可以构造一个畸形的IP地址,以跳过if去执行else,从而使用了gethostbyname。

核心问题出在此正则表达式的校验比较弱,正确的IPv4地址是xxx.xxx.xxx.xxx,但是首位不能是0。

解决办法-:增强正则表达式。
^(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))$

即:if ( 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 ) )
更改为:if ( preg_match( ‘#^(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))$#’, $host ) )


如果觉得我的文章对您有用,望各位有钱的捧钱场,没钱的捧人场啦!先谢过了。
打赏多少无所谓,1元不嫌少,10元不嫌多,都是一份心意。
真诚赞赏,手留余香。
打赏尛鱼児

本文未经允许不能转载,如需转载请注明出处 https://www.scit028.com/post-118.html
分享到: QQ好友 QQ空间

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

发表评论

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