白帽駭客資安網-網站安全的靠山,提供漏洞修補,網站被駭入侵,網站資訊安全服務

漏洞預警 | ECShop全系列版本遠端代碼執行高危漏洞

漏洞原理 
 

該漏洞產生的根本原因在於ECShop系統的user.php檔中,display函數的範本變數可控,導致注入,配合注入可達到遠端代碼執行的效果。使得攻擊者無需登錄等操作,直接可以獲得伺服器的許可權。
首先從user.php檔入手,代碼中可以看到,系統讀取HTTP_REFERER傳遞過來的
內容賦值給$back_act變數。
/user.php)
 接著以$back_act的值為參數,調用assign方法。
描述: 2.png (/user.php)
assign方法的作用是把可控變數傳遞給模版函數,緊接著再通過display方法展示
到頁面上。接下來跟進display內部的insert_mod方法。
描述: 3.png(/includes/cls_template/php)
insert_mod方法返回了一個動態函式呼叫,該函數名和參數均可控,根據攻擊者
的利用方法,我們可以得知調用的函數名為insert_ads,接下來跟進這一方法。
描述: 4.png(/includes/lib_insert.php)
不難發現,$arr['id']和$arr['num']這兩個變數,都是外部可控的輸入點,在構造攻
擊向量的過程中執行的SQL語句如下。
(列印$sql變數)
描述: 6.png(sql語句執行結果)
接著,程式調用了fetch方法,參數由$row['position_style']變數賦值,這一變數同樣為外部可控輸入點。


描述: 7.png(/includes/lib_insert.php)


這裡fetch函式呼叫了危險函數,這就是最終觸發漏洞的點。但是參數在傳遞之前
要經過fetch_str方法的處理。
描述: 8.png(/includes/cls_template.php)
最終輸入點依次經過fetch_str、select、get_val,最終傳入make_var方法。


描述: 9.png (/includes/cls_template.php)


最終傳遞到eval的字串為:


描述: 10.png到此,漏洞原理分析完成,攻擊者的惡意程式碼執行成功。


漏洞攻擊利用實例
 

阿裡雲態勢感知於2018年8月1日監控到雲上首例此漏洞利用。駭客通過HTTP 請求頭的Referer欄位植入惡意程式碼如下:


描述: 11替换.png當駭客惡意程式碼成功被執行後,會嘗試訪問連結:’http://uee.me/MrJc‘,具體的payload代碼如下所示:
描述: 12.jpg其中http-//uee.me/MrJc是一個短連接,其完整的url為:http-//www.thaihaogo.com/images/201608/4.jpg


此檔下載到成功後會重命名為1.php,實際上4.jpg檔就是一個混淆後的php木馬。
描述: 13.png去除混淆部分,將木馬執行邏輯還原如下:


描述: 14.png該木馬中的PHP代碼會去下載一個功能齊全的WEB木馬,位址為:http-//i.niupic.com/images/2017/05/26/Lfkavl.gif,該WEB木馬的功能詳情如下:


描述: 15.png

漏洞影響
 

阿裡雲應急中心測試發現,ECShop全系列版本(包括2.x、3.0.x、3.6.x)均存在該遠端代碼執行漏洞。阿裡雲態勢感知資料研究中心監控的資料顯示,該漏洞利用難度低,影響面廣,並已經發現有批量入侵跡象,需要存在相關業務的使用者及時關注並進行修補。

專家建議
 

在官方補丁沒放出之前,我們建議站長可以修改include/lib_insert.php檔中相關漏洞的代碼,將$arr[id]和$arr[num]強制將資料轉換成整型,該方法可作為臨時修復方案將入侵風險降到最低。需要修改的部分代碼如下:


描述: 16png.png
(includes/lib_insert.php )
 

分享: