php网站漏洞检测对sql注入漏洞防护
近日,我們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獨有的設計風格,使用了MVC框架進行設計,該漏洞的主要點在于使用了auth類的調用方式,在解碼加密過程的算法中出現了問題,我們再來看下代碼:
通常加密,以及解密的算法是不可以可逆的,但是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里,進行注入,代碼如下:
/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安全,以及綠盟,啟明星辰,都是比較不錯的網站漏洞修復公司。
總結
以上是生活随笔為你收集整理的php网站漏洞检测对sql注入漏洞防护的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 12省联考2019口胡
- 下一篇: php数据结构课程---2、链表(php