metinfo sql注入漏洞修復建議與防範辦法

網站安全發表於2019-04-08

近日,我們SINE安全對metinfo進行網站安全檢測發現,metinfo米拓建站系統存在高危的sql注入漏洞,攻擊者可以利用該漏洞對網站的程式碼進行sql注入攻擊,偽造惡意的sql非法語句,對網站的資料庫,以及後端伺服器進行攻擊,該metinfo漏洞影響版本較為廣泛,metinfo6.1.0版本,metinfo 6.1.3版本,metinfo 6.2.0都會受到該網站漏洞的攻擊。

metinfo建站系統使用的PHP語言開發,資料庫採用的是mysql架構開發的,在整體的網站使用過程中,簡單易操作,視覺化的對網站外觀進行設計,第三方API介面豐富,模板檔案較多,深受企業網站的青睞,建站成本較低可以一鍵搭建網站,目前國內使用metinfo建站的網站數量較多,該metinfo漏洞會使大部分的網站受到攻擊影響,嚴重的網站首頁被篡改,跳轉到其他網站,以及網站被劫持跳轉到惡意網站上,包括網站被掛馬,快照被劫持等情況都會發生。

關於該metinfo漏洞的分析,我們來看下漏洞產生的原因:

該漏洞產生在member會員資料夾下的basic.php程式碼檔案:

metinfo sql注入漏洞修復建議與防範辦法

metinfo獨有的設計風格,使用了MVC框架進行設計,該漏洞的主要點在於使用了auth類的呼叫方式,在解碼加密過程的演算法中出現了問題,我們再來看下程式碼:

metinfo sql注入漏洞修復建議與防範辦法

通常加密,以及解密的演算法是不可以可逆的,但是metinfo寫的程式碼可以進行偽造函式值進行逆算,我們看這個構造的惡意函式,這裡的key值是從前端met_webkeys值裡進行獲取,將獲取到的webkeys值進行寫入,並賦值到配置檔案裡,config目錄下的config_safe.php程式碼裡。我們透過檢視這個程式碼,發現寫入的值沒有辦法進行PHP指令碼的執行,本來以為可是偽造key值進行寫入木馬,發現行不通,但是在這個偽造key值的過程可以進行sql注入攻擊,採用是延時注入方式進行攻擊,GET請求,以及post請求方式,cookies方式都可以sql注入成功,下面我們來測試下Sql注入:

GET請求的方式進行注入:

GET /admin/index.php?n=user&m=web&c=register&a=doemailvild HTTP/1.1

Cookie:

p=00c7%2FDBwD23b41olxVCthTvDDTRBhldmrrdyA8S3t%2F3yAl4QZ0P%2FSfOS5zlB

把具體的SQL隱碼攻擊語句放到 cookie中進行攻擊,我們發現注入成功了。上面這個注入普通使用者訪問即可成功。下面這個注入方式需要使用者登入許可權,註冊一個普通賬戶,然後抓取cookies值進行偽造sql注入語句摻雜到cookies裡,進行注入,程式碼如下:

metinfo sql注入漏洞修復建議與防範辦法

/admin/index.php?n=user&m=web&c=profile&a=dosafety_emailadd HTTP/1.1

Cookie: p=497cD9UpkDtsvFzU9IKNlPvSyg1z%2bf09cmp8hqUeyJW9ekvPfJqx8cLKFSHr;<

自己抓取當前登入會員的cookie值>

metinfo sql注入漏洞修復建議與防範辦法

關於metinfo漏洞的修復建議,以及安全方案

目前metinfo最新版本釋出是2019年3月28日,6.2.0版本,官方並沒有針對此sql注入漏洞進行修復,建議網站的運營者對網站的後臺地址進行更改,管理員的賬號密碼進行更改,更改為數字+字元+大小寫的12位以上的組合方式,對網站的配置檔案目錄進行安全限制,去掉PHP指令碼執行許可權,如果自己對程式碼不是太熟悉,建議找專業的網站安全公司來處理修復漏洞,國內SINE安全,以及綠盟,啟明星辰,都是比較不錯的網站漏洞修復公司。


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

相關文章