有漏洞安全修複提示,級别盡快修複,同時給出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 已經是這樣的代碼了。。
修改完之後,登入阿裡雲,打開雲盾伺服器安全,找到這個漏洞,在後面點選驗證一下,驗證通過之後,就不提示這個漏洞了。
原文位址