WF曲速未來警惕:ECSHOP多個版本遠程代碼執行漏洞區塊鏈
WF曲速未來消息:8月31日,流行的購物系統——ECSHOP被曝出遠程代碼執行漏洞。攻擊者可利用代碼執行漏洞遠程在服務器上執行命令,從而控制服務器,獲取敏感數據,甚至導致內網淪陷。
WF曲速未來消息:8月31日,流行的購物系統——ECSHOP被曝出遠程代碼執行漏洞。攻擊者可利用代碼執行漏洞遠程在服務器上執行命令,從而控制服務器,獲取敏感數據,甚至導致內網淪陷。該漏洞在2017就已經存在,最近才被公布,相關用戶最好進行安全檢查,及時確認是否被入侵并修復漏洞并去掉后門。ECShop是國內最流行的購物系統之一。是上海商派網絡科技有限公司(ShopEx)旗下的B2C獨立網店系統,基于PHP語言及MYSQL數據庫構架開發的跨平臺開源程序。建議使用該系統的用戶及時檢查是否存在該漏洞,避免造成損失。
分布概況
目前根據FOFA統計,全球共計有21450個ECSHOP的用戶;
下面是全球分布情況(非漏洞影響情況),其中中國最多,大概有18400個,美國1735個,其他國家用戶數量不多于300:
下面是全球分布情況(非漏洞影響情況),其中浙江10563,北京2227,廣東738,河南655:
漏洞分析
遠程代碼執行漏洞
該漏洞產生的根本原因在于ECShop系統的user.php文件中,display函數的模板變量可控,導致注入,配合注入可達到遠程代碼執行的效果。使得攻擊者無需登錄等操作,直接可以獲得服務器的權限。
首先從user.php文件入手,代碼中可以看到,系統讀取HTTP_REFERER傳遞過來的內容賦值給$back_act變量。接著以$back_act的值為參數,調用assign方法。
assign方法的作用是把可控變量傳遞給模版函數,緊接著再通過display方法展示到頁面上。
接下來,跟進dispaly方法,再display中又調用了insert_mod方法
insert_mod方法返回了一個動態函數調用,該函數名和參數均可控,根據攻擊者的利用方法,我們可以得知調用的函數名為insert_ads,接下來跟進這一方法。
不難發現,$arr['id']和$arr['num']這兩個變量,都是外部可控的輸入點,在構造攻擊向量的過程中執行的SQL語句如下。
調用了fetch方法,參數由$row['position_style']變量賦值,這一變量同樣可控。
這里fetch函數調用了危險函數,這就是最終觸發漏洞的點。但是參數在傳遞之前要經過fetch_str方法的處理。
經過fetch_str、select、get_val,make_var方法,最終執行代碼。這里說一下,如果存在代碼執行,則肯定存在SQL注入,但對于利用的便捷性,還是代碼執行用起來比較方便。
最終payload,會生成666.php,密碼1233
到此,漏洞原理分析完成,攻擊者的惡意代碼執行成功。
修復建議:
1 在官網上下載ECSHOP最新版。
2 在文件中140,271,370行加上如下兩行代碼把可控變量進行強制類型轉換即可。
區塊鏈安全實驗室WF曲速未來提醒:該漏洞利用難度低,影響面廣,并已經發現有批量入侵跡象,存在相關業務的用戶及時關注并進行修補。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。