本篇文章為大家展示了怎樣分析ECShop全系列版本遠程代碼執行高危漏洞,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
2018年9月1日,阿里云態勢感知發布預警,近日利用ECShop全系列版本的遠程代碼執行漏洞進行批量化攻擊量呈上升趨勢。該漏洞利用簡單且危害較大,黑客可通過WEB攻擊直接獲得服務器權限。
該漏洞產生的根本原因在于ECShop系統的user.php文件中,display函數的模板變量可控,導致注入,配合注入可達到遠程代碼執行的效果。使得攻擊者無需登錄等操作,直接可以獲得服務器的權限。
首先從user.php文件入手,代碼中可以看到,系統讀取HTTP_REFERER傳遞過來的
內容賦值給$back_act變量。
(/user.php)
接著以$back_act的值為參數,調用assign方法。
(/user.php)
assign方法的作用是把可控變量傳遞給模版函數,緊接著再通過display方法展示
到頁面上。接下來跟進display內部的insert_mod方法。
(/includes/cls_template/php)
insert_mod方法返回了一個動態函數調用,該函數名和參數均可控,根據攻擊者
的利用方法,我們可以得知調用的函數名為insert_ads,接下來跟進這一方法。
(/includes/lib_insert.php)
不難發現,$arr['id']和$arr['num']這兩個變量,都是外部可控的輸入點,在構造攻
擊向量的過程中執行的SQL語句如下。
(打印$sql變量)
(sql語句執行結果)
接著,程序調用了fetch方法,參數由$row['position_style']變量賦值,這一變量同樣為外部可控輸入點。
(/includes/lib_insert.php)
這里fetch函數調用了危險函數,這就是最終觸發漏洞的點。但是參數在傳遞之前
要經過fetch_str方法的處理。
(/includes/cls_template.php)
最終輸入點依次經過fetch_str、select、get_val,最終傳入make_var方法。
(/includes/cls_template.php)
最終傳遞到eval的字符串為:
到此,漏洞原理分析完成,攻擊者的惡意代碼執行成功。
阿里云態勢感知于2018年8月1日監控到云上首例此漏洞利用。黑客通過HTTP 請求頭的Referer字段植入惡意代碼如下:
當黑客惡意代碼成功被執行后,會嘗試訪問鏈接:'http://uee.me/MrJc',具體的payload代碼如下所示:
其中http-//uee.me/MrJc是一個短連接,其完整的url為:http-//www.thaihaogo.com/images/201608/4.jpg。
此文件下載到成功后會重命名為1.php,實際上4.jpg文件就是一個混淆后的php木馬。
去除混淆部分,將木馬執行邏輯還原如下:
該木馬中的PHP代碼會去下載一個功能齊全的WEB木馬,地址為:http-//i.niupic.com/images/2017/05/26/Lfkavl.gif,該WEB木馬的功能詳情如下:
阿里云應急中心測試發現,ECShop全系列版本(包括2.x、3.0.x、3.6.x)均存在該遠程代碼執行漏洞。阿里云態勢感知數據研究中心監控的數據顯示,該漏洞利用難度低,影響面廣,并已經發現有批量入侵跡象,需要存在相關業務的用戶及時關注并進行修補。
在官方補丁沒放出之前,我們建議站長可以修改include/lib_insert.php文件中相關漏洞的代碼,將$arr[id]和$arr[num]強制將數據轉換成整型,該方法可作為臨時修復方案將入侵風險降到最低。需要修改的部分代碼如下:
上述內容就是怎樣分析ECShop全系列版本遠程代碼執行高危漏洞,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。