php网站漏洞检测对sql注入漏洞防护
近日,我們SINE安全對(duì)metinfo進(jìn)行網(wǎng)站安全檢測(cè)發(fā)現(xiàn),metinfo米拓建站系統(tǒng)存在高危的sql注入漏洞,攻擊者可以利用該漏洞對(duì)網(wǎng)站的代碼進(jìn)行sql注入攻擊,偽造惡意的sql非法語(yǔ)句,對(duì)網(wǎng)站的數(shù)據(jù)庫(kù),以及后端服務(wù)器進(jìn)行攻擊,該metinfo漏洞影響版本較為廣泛,metinfo6.1.0版本,metinfo 6.1.3版本,metinfo 6.2.0都會(huì)受到該網(wǎng)站漏洞的攻擊。
metinfo建站系統(tǒng)使用的PHP語(yǔ)言開(kāi)發(fā),數(shù)據(jù)庫(kù)采用的是mysql架構(gòu)開(kāi)發(fā)的,在整體的網(wǎng)站使用過(guò)程中,簡(jiǎn)單易操作,可視化的對(duì)網(wǎng)站外觀進(jìn)行設(shè)計(jì),第三方API接口豐富,模板文件較多,深受企業(yè)網(wǎng)站的青睞,建站成本較低可以一鍵搭建網(wǎng)站,目前國(guó)內(nèi)使用metinfo建站的網(wǎng)站數(shù)量較多,該metinfo漏洞會(huì)使大部分的網(wǎng)站受到攻擊影響,嚴(yán)重的網(wǎng)站首頁(yè)被篡改,跳轉(zhuǎn)到其他網(wǎng)站,以及網(wǎng)站被劫持跳轉(zhuǎn)到惡意網(wǎng)站上,包括網(wǎng)站被掛馬,快照被劫持等情況都會(huì)發(fā)生。
關(guān)于該metinfo漏洞的分析,我們來(lái)看下漏洞產(chǎn)生的原因:
該漏洞產(chǎn)生在member會(huì)員文件夾下的basic.php代碼文件:
metinfo獨(dú)有的設(shè)計(jì)風(fēng)格,使用了MVC框架進(jìn)行設(shè)計(jì),該漏洞的主要點(diǎn)在于使用了auth類(lèi)的調(diào)用方式,在解碼加密過(guò)程的算法中出現(xiàn)了問(wèn)題,我們?cè)賮?lái)看下代碼:
通常加密,以及解密的算法是不可以可逆的,但是metinfo寫(xiě)的代碼可以進(jìn)行偽造函數(shù)值進(jìn)行逆算,我們看這個(gè)構(gòu)造的惡意函數(shù),這里的key值是從前端met_webkeys值里進(jìn)行獲取,將獲取到的webkeys值進(jìn)行寫(xiě)入,并賦值到配置文件里,config目錄下的config_safe.php代碼里。我們通過(guò)查看這個(gè)代碼,發(fā)現(xiàn)寫(xiě)入的值沒(méi)有辦法進(jìn)行PHP腳本的執(zhí)行,本來(lái)以為可是偽造key值進(jìn)行寫(xiě)入木馬,發(fā)現(xiàn)行不通,但是在這個(gè)偽造key值的過(guò)程可以進(jìn)行sql注入攻擊,采用是延時(shí)注入方式進(jìn)行攻擊,GET請(qǐng)求,以及post請(qǐng)求方式,cookies方式都可以sql注入成功,下面我們來(lái)測(cè)試下Sql注入:
GET請(qǐng)求的方式進(jìn)行注入:
GET /admin/index.php?n=user&m=web&c=register&a=doemailvild HTTP/1.1
Cookie:
p=00c7%2FDBwD23b41olxVCthTvDDTRBhldmrrdyA8S3t%2F3yAl4QZ0P%2FSfOS5zlB
把具體的SQL注入語(yǔ)句放到 cookie中進(jìn)行攻擊,我們發(fā)現(xiàn)注入成功了。上面這個(gè)注入普通用戶(hù)訪(fǎng)問(wèn)即可成功。下面這個(gè)注入方式需要用戶(hù)登錄權(quán)限,注冊(cè)一個(gè)普通賬戶(hù),然后抓取cookies值進(jìn)行偽造sql注入語(yǔ)句摻雜到cookies里,進(jìn)行注入,代碼如下:
/admin/index.php?n=user&m=web&c=profile&a=dosafety_emailadd HTTP/1.1
Cookie: p=497cD9UpkDtsvFzU9IKNlPvSyg1z%2bf09cmp8hqUeyJW9ekvPfJqx8cLKFSHr;<
自己抓取當(dāng)前登錄會(huì)員的cookie值>
關(guān)于metinfo漏洞的修復(fù)建議,以及安全方案
目前metinfo最新版本發(fā)布是2019年3月28日,6.2.0版本,官方并沒(méi)有針對(duì)此sql注入漏洞進(jìn)行修復(fù),建議網(wǎng)站的運(yùn)營(yíng)者對(duì)網(wǎng)站的后臺(tái)地址進(jìn)行更改,管理員的賬號(hào)密碼進(jìn)行更改,更改為數(shù)字+字符+大小寫(xiě)的12位以上的組合方式,對(duì)網(wǎng)站的配置文件目錄進(jìn)行安全限制,去掉PHP腳本執(zhí)行權(quán)限,如果自己對(duì)代碼不是太熟悉,建議找專(zhuān)業(yè)的網(wǎng)站安全公司來(lái)處理修復(fù)漏洞,國(guó)內(nèi)SINE安全,以及綠盟,啟明星辰,都是比較不錯(cuò)的網(wǎng)站漏洞修復(fù)公司。
總結(jié)
以上是生活随笔為你收集整理的php网站漏洞检测对sql注入漏洞防护的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 12省联考2019口胡
- 下一篇: JAVA面试--史上最全 69 道 Sp