Metinfo CMS系統網站存在漏洞!可獲得webshell 漏洞解說.
擊者可以輕易的獲取網站的webshell許可權,對網站進行篡改與攻擊,目前該網站漏洞影
響範圍是Metinfo 6.2.0最新版本,以及以前的所有Metinfo版本都可以利用,關於該Metin
fo漏洞的詳情我們來詳細的分析:
首先該網站漏洞的利用前提是windows系統,PHP語言的版本是小於5.3,相當於舊的服務
器都會按照這個環境來配置網站,我們來看下出現漏洞的代碼,Metinfo在上傳方面寫了一
個專門的上傳功能,非常的強大,使用doupfile進行上傳,我們來看下代碼,如下圖所示:
我們從上面的代碼中可以看出上傳檔有一些模式,還有變數的資訊,info這個變數是可以
控制的,我們看下upfile跟upload調用的方法是什麼作用,追蹤分析代碼發現這個是用來存
儲上傳檔的路徑資訊的,這2個變數值會直接將上傳的路徑給改變,這也是該漏洞產生的
原因,我們接著繼續分析代碼的漏洞,Metinfo在使用doupfile上傳的時候回對上傳的檔案名
進行安全過濾,基本的一些指令檔都已經過濾掉了,只能上傳一些圖片格式的檔,使用
白名單安全機制對上傳進行了嚴格的安全限制。
看來通過改變上傳檔的格式是沒有辦法繞過上傳,我們繼續分析代碼,上傳檔的路徑這
裡可以進行目錄的更改,發現代碼有編碼的轉化功能,如果路徑裡含有./那麼就會使用iconv函
數對其進行路徑的轉換,網站的漏洞也出在這裡,根源就是這裡,我們可以繞過轉換,對其
進行字元的截斷,低於php5.3版本的都存在這個漏洞,構造代碼如下:抓包截取上傳的數據
包,將savepath=a.php%80\..\1.jpg 然後直接post資料到http://Metinfo/admin/index.php
為什麼要直接post到網站後臺的地址呢?是因為後臺的index.php被Metinfo官方加入到白名單
裡,可以直接繞過sqlinsert函數的過濾,直接上傳webshell到網站中,在實際的漏洞測試過程
中,並不需要登錄後臺,直接post該位址即可,如果不知道資料包是如何寫的,可以自己本地
搭建一個Metinfo的環境,然後登錄後臺,截取資料包,再修改資料庫的網站位址,進行漏洞測
試。
網站漏洞修復辦法與詳情
目前官方並沒有對此漏洞進行修補,建議程式師對php的版本進行升級到5.3以上,或者切換服
務器到linux系統,對上傳目錄uoload進行無PHP腳本運行許可權,或者對網站目錄進行安全加固防
止PHP的檔的創建與生成。如果您對代碼不是太熟悉的話,可以付費找專業的網站安全公司來
處理,國內也就ESAFE安全,綠盟,啟明星辰比較專業一些,關於Metinfo漏洞的修復以及加固辦
法,就寫到這裡,希望廣大的網站運營者正視起網站的安全。