天天看點

PrestaShop 網站漏洞修複如何修複

PrestaShop網站的漏洞越來越多,該網站系統是很多外貿網站在使用的一個開源系統,從之前的1.0初始版本到現在的1.7版本,經曆了多次的更新,系統使用的人也越來越多,國内使用該系統的外貿公司也很多,PrestaShop擴充性較高,模闆也多,多種貨币自由切換,并支援信用卡以及paypal支付,是外貿網站的首選。就在最近幾天,PrestaShop被爆出有遠端代碼注入漏洞,該漏洞影響範圍較光,危害較大,可以上傳webshell到網站根目錄下。

PrestaShop 網站漏洞修複如何修複

2018年11月7号PrestaShop官方釋出了最新的版本,并修複了網站的漏洞,其中包含了之前被爆出的檔案上傳漏洞,以及惡意删除圖檔檔案夾的漏洞,該漏洞的利用條件是需要有網站的背景管理權限。

這次發現的PrestaShop漏洞,是遠端代碼注入漏洞,漏洞産生的代碼如下在背景的admin-dev目錄下filemanager檔案裡的ajax_calls.php代碼,這個遠端的注入漏洞是背景處理上傳檔案的功能導緻的,代碼裡的getimagesize()函數是擷取圖檔位址的一個函數,該函數使用了php反序列化,這個反序列化存在遠端調用的一個功能,就是在這個功能裡存在遠端代碼注入與執行,我們構造惡意的注入代碼對其圖檔代碼送出就會執行我們的代碼,我們來示範一下,首先搭建一台linux伺服器,并搭建好apache+mysql資料庫的環境,拷貝PrestaShop代碼到伺服器中,進行安裝,并調試可以打開。

PrestaShop 網站漏洞修複如何修複

我們來嘗試一下如何利用該漏洞,在背景admin-rename目錄下的filemanager檔案夾dialog.php的檔案,進行調用,這個頁面就是控制上傳檔案,上傳圖檔的,使用action可以對上傳的參數進行安全控制,我們可以構造代碼執行,admin-rename/filemanager/execute.php?action=rename_folder,post的方式進行送出,發送資料到這個檔案代碼裡,利用PHP的反序列化就可以自動的解析代碼,達到遠端代碼注入執行的效果。

PrestaShop網站漏洞修複與辦法

更新PrestaShop的版本到最新版本,設定php.ini的解析功能為off具體是phar.readonly=off,這裡設定為關閉,對網站的上傳功能加強安全過濾,過濾非法參數的插入,對網站的漏洞代碼進行功能性的注釋。