近日,咱們SINE安全對metinfo進行網站安全檢測發現,metinfo米拓建站系統存在高危的sql注入漏洞,攻擊者能夠利用該漏洞對網站的代碼進行sql注入攻擊,僞造惡意的sql非法語句,對網站的數據庫,以及後端服務器進行攻擊,該metinfo漏洞影響版本較爲普遍,metinfo6.1.0版本,metinfo 6.1.3版本,metinfo 6.2.0都會受到該網站漏洞的攻擊。php
metinfo建站系統使用的PHP語言開發,數據庫採用的是mysql架構開發的,在總體的網站使用過程當中,簡單易操做,可視化的對網站外觀進行設計,第三方API接口豐富,模板文件較多,深受企業網站的青睞,建站成本較低能夠一鍵搭建網站,目前國內使用metinfo建站的網站數量較多,該metinfo漏洞會使大部分的網站受到攻擊影響,嚴重的網站首頁被篡改,跳轉到其餘網站,以及網站被劫持跳轉到惡意網站上,包括網站被掛馬,快照被劫持等狀況都會發生。前端
關於該metinfo漏洞的分析,咱們來看下漏洞產生的緣由:mysql
該漏洞產生在member會員文件夾下的basic.php代碼文件:web
metinfo獨有的設計風格,使用了MVC框架進行設計,該漏洞的主要點在於使用了auth類的調用方式,在解碼加密過程的算法中出現了問題,咱們再來看下代碼:算法
一般加密,以及解密的算法是不能夠可逆的,可是metinfo寫的代碼能夠進行僞造函數值進行逆算,咱們看這個構造的惡意函數,這裏的key值是從前端met_webkeys值裏進行獲取,將獲取到的webkeys值進行寫入,並賦值到配置文件裏,config目錄下的config_safe.php代碼裏。咱們經過查看這個代碼,發現寫入的值沒有辦法進行PHP腳本的執行,原本覺得但是僞造key值進行寫入木馬,發現行不通,可是在這個僞造key值的過程能夠進行sql注入攻擊,採用是延時注入方式進行攻擊,GET請求,以及post請求方式,cookies方式均可以sql注入成功,下面咱們來測試下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裏,進行注入,代碼以下:
/admin/index.php?n=user&m=web&c=profile&a=dosafety_emailadd HTTP/1.1
Cookie: p=497cD9UpkDtsvFzU9IKNlPvSyg1z%2bf09cmp8hqUeyJW9ekvPfJqx8cLKFSHr;<
本身抓取當前登陸會員的cookie值>
關於metinfo漏洞的修復建議,以及安全方案
目前metinfo最新版本發佈是2019年3月28日,6.2.0版本,官方並無針對此sql注入漏洞進行修復,建議網站的運營者對網站的後臺地址進行更改,管理員的帳號密碼進行更改,更改成數字+字符+大小寫的12位以上的組合方式,對網站的配置文件目錄進行安全限制,去掉PHP腳本執行權限,若是本身對代碼不是太熟悉,建議找專業的網站安全公司來處理修復漏洞,國內SINE安全,以及綠盟,啓明星辰,都是比較不錯的網站漏洞修復公司。