登錄阿里雲後臺 有漏洞安全修復提示,級別儘快修復,同時給出ECS服務器管理重要通知:您的雲服務器(xxx.xx.xxx.xx)由於被檢測到對外攻擊,已阻斷該服務器對其它服務器端口(UDP:ALL)的訪問,阻斷預計將在2018-04-23 09:56:58時間內結束,請及時進行安全自查。若有疑問,請工單或電話聯繫阿里雲售後。 阿里雲經常提示有wordpress IP驗證不當漏洞,實際上這個漏洞影響並不大,阿里雲只是為了讓你購買它的付費版的雲盾服務器安全服務(安騎士)。其實我們自己手動就可以修復這個漏洞,下面是如何修復漏洞的方法。
漏洞名稱:wordpress IP驗證不當漏洞
補丁編號:7292650
補丁文件:wp-includes/http.php
補丁來源:雲盾自研
漏洞描述:
wordpress /wp-includes/http.php文件中的wp_http_validate_url函數對輸入IP驗證不當,導致黑客可構造類似於012.10.10.10這樣的畸形IP繞過驗證,進行SSRF。【注意:該補丁為雲盾自研代碼修復方案,雲盾會根據您當前代碼是否符合雲盾自研的修復模式進行檢測,如果您自行採取了底層/框架統一修復、或者使用了其他的修復方案,可能會導致您雖然已經修復了改漏洞,雲盾依然報告存在漏洞,遇到該情況可選擇忽略該漏洞提示】
漏洞修復方法:
找到wp-includes/http.php這個文件,在文件的526行(不同的WordPress版本行數不同,可以搜索下面代碼來找出這個位置)附近找到:
$same_host = strtolower( $parsed_home['host'] ) === strtolower( $parsed_url['host'] );
其實最新的WordPress這一段是這樣子的:
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;
}
如果你的 WordPress 版本不是最新版,在 541行左右找以下代碼(最新版WordPress已經不需要修改這一項了。)
if ( 127 === $parts[0] || 10 === $parts[0]
替換成:
if ( 127 === $parts[0] || 10 === $parts[0] || 0 === $parts[0]
如果發現上面這行代碼跟源文件中的一樣,則不用修改了,最新版 WordPress 已經是這樣的代碼了。。
修改完之後,登錄阿里雲,打開雲盾服務器安全,找到這個漏洞,在後麵點擊驗證一下,驗證通過之後,就不提示這個漏洞了。