網站漏洞修復之Metinfo 檔案上傳漏洞

網站安全發表於2019-07-12

Metinfo CMS系統被爆出網站存在漏洞,可上傳任意檔案到網站根目錄下,從而使攻擊者可以輕易的獲取網站的webshell許可權,對網站進行篡改與攻擊,目前該網站漏洞影響範圍是Metinfo 6.2.0最新版本,以及以前的所有Metinfo版本都可以利用,關於該Metinfo漏洞的詳情我們來詳細的分析:

網站漏洞修復之Metinfo 檔案上傳漏洞

首先該網站漏洞的利用前提是windows系統,PHP語言的版本是小於5.3,相當於舊的伺服器都會按照這個環境來配置網站,我們來看下出現漏洞的程式碼,Metinfo在上傳方面寫了一個專門的上傳功能,非常的強大,使用doupfile進行上傳,我們來看下程式碼,如下圖所示:

網站漏洞修復之Metinfo 檔案上傳漏洞

我們從上面的程式碼中可以看出上傳檔案有一些模式,還有變數的資訊,info這個變數是可以控制的,我們看下upfile跟upload呼叫的方法是什麼作用,追蹤分析程式碼發現這個是用來儲存上傳檔案的路徑資訊的,這2個變數值會直接將上傳的路徑給改變,這也是該漏洞產生的原因,我們接著繼續分析程式碼的漏洞,Metinfo在使用doupfile上傳的時候回對上傳的檔名進行安全過濾,基本的一些指令碼檔案都已經過濾掉了,只能上傳一些圖片格式的檔案,使用白名單安全機制對上傳進行了嚴格的安全限制。

網站漏洞修復之Metinfo 檔案上傳漏洞

看來透過改變上傳檔案的格式是沒有辦法繞過上傳,我們繼續分析程式碼,上傳檔案的路徑這裡可以進行目錄的更改,發現程式碼有編碼的轉化功能,如果路徑裡含有./那麼就會使用iconv函式對其進行路徑的轉換,網站的漏洞也出在這裡,根源就是這裡,我們可以繞過轉換,對其進行字元的截斷,低於php5.3版本的都存在這個漏洞,構造程式碼如下:抓包擷取上傳的資料包,將savepath=a.php%80\..\1.jpg 然後直接post資料到為什麼要直接post到網站後臺的地址呢?是因為後臺的index.php被Metinfo官方加入到白名單裡,可以直接繞過sqlinsert函式的過濾,直接上傳webshell到網站中,在實際的漏洞測試過程中,並不需要登入後臺,直接post該地址即可,如果不知道資料包是如何寫的,可以自己本地搭建一個Metinfo的環境,然後登入後臺,擷取資料包,再修改資料庫的網站地址,進行漏洞測試。

網站漏洞修復之Metinfo 檔案上傳漏洞

網站漏洞修復辦法與詳情

目前官方並沒有對此漏洞進行修補,建議程式設計師對php的版本進行升級到5.3以上,或者切換伺服器到linux系統,對上傳目錄uoload進行無PHP指令碼執行許可權,或者對網站目錄進行安全加固防止PHP的檔案的建立與生成。如果您對程式碼不是太熟悉的話,可以付費找專業的網站安全公司來處理,國內也就SINE安全,綠盟,啟明星辰比較專業一些,關於Metinfo漏洞的修復以及加固辦法,就寫到這裡,希望廣大的網站運營者正視起網站的安全。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542418/viewspace-2650415/,如需轉載,請註明出處,否則將追究法律責任。

相關文章