一、wordpress函數(shù)wp_http_validate_url畸形IP繞過驗證SSRF漏洞
原文:https://blog.csdn.net/dclnet/article/details/81869078
阿里云提示:wordpress /wp-includes/http.php文件中的wp_http_validate_url函數(shù)對輸入IP驗證不當,導致黑客可構造類似于012.10.10.10這樣的畸形IP繞過驗證,進行SSRF;
修復方法:
http.php 540行
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)
既增加對0開頭的012.10.10.10這樣的IP進行驗證,簡單測試用例結果:

網上轉(訛)載(傳)的修改方法

這個是什么意思呢?懂代碼的都知道它只是判斷域名,沒對IP做驗證,所以這樣或許可以騙過阿里云的漏洞檢測(我沒去試),但是這樣仍然是沒有真正意義上的修復漏洞,那么……
各位看官覺得有什么不對的可評論指出
二、 阿里云給出的漏洞說明
原文:https://www.liwei8090.com/2831.html
今天登陸阿里云服務器控制臺,提示網站存在漏洞,等級為“需盡快修復”。對于我這種強迫癥的人來說,這樣的提醒當然是越早消滅掉越好。下面是阿里給出的“wordpress IP驗證不當漏洞”說明:
基本信息
標題: wordpress IP驗證不當漏洞
披露時間: 1970-01-01 08:00:00
簡介:
wordpress /wp-includes/http.php文件中的wp_http_validate_url函數(shù)對輸入IP驗證不當,導致黑客可構造類似于012.10.10.10這樣的畸形IP繞過驗證,進行SSRF。
解決方案:
方案一:使用云盾自研補丁進行一鍵修復;
方案二:更新該軟件到官方最新版本或尋求該軟件提供商的幫助。
【注意:該補丁為云盾自研代碼修復方案,云盾會根據(jù)您當前代碼是否符合云盾自研的修復模式進行檢測,如果您自行采取了底層/框架統(tǒng)一修復、或者使用了其他的修復方案,可能會導致您雖然已經修復了該漏洞,云盾依然報告存在漏洞,遇到該情況可選擇忽略該漏洞提示】
如何修復
1、在路徑:/data/wwwroot/www.liwei8090.com/wp-includes/http.php找到http.php文件,用Notepad++打開(修改之前記得先備份http.php原文件),大概在533行(不同的WordPress版本可能行數(shù)不同,你可以查找關鍵詞進行查找):
$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]
漏洞修復完成
修改完以上內容,然后再到阿里云盾控制臺重新驗證一下漏洞,就會發(fā)現(xiàn)漏洞已經不存在了。


