PrestaShop網站的漏洞愈來愈多,該網站系統是不少外貿網站在使用的一個開源系統,從以前的1.0初始版本到如今的1.7版本,經歷了屢次的升級,系統使用的人也愈來愈多,國內使用該系統的外貿公司也不少,PrestaShop擴展性較高,模板也多,多種貨幣自由切換,並支持信用卡以及paypal支付,是外貿網站的首選。就在最近幾天,PrestaShop被爆出有遠程代碼注入漏洞,該漏洞影響範圍較光,危害較大,能夠上傳webshell到網站根目錄下。php
2018年11月7號PrestaShop官方發佈了最新的版本,並修復了網站的漏洞,其中包含了以前被爆出的文件上傳漏洞,以及惡意刪除圖片文件夾的漏洞,該漏洞的利用條件是須要有網站的後臺管理權限。mysql
此次發現的PrestaShop漏洞,是遠程代碼注入漏洞,漏洞產生的代碼以下在後臺的admin-dev目錄下filemanager文件裏的ajax_calls.php代碼,這個遠程的注入漏洞是後臺處理上傳文件的功能致使的,代碼裏的getimagesize()函數是獲取圖片地址的一個函數,該函數使用了php反序列化,這個反序列化存在遠程調用的一個功能,就是在這個功能裏存在遠程代碼注入與執行,咱們構造惡意的注入代碼對其圖片代碼提交就會執行咱們的代碼,咱們來演示一下,首先搭建一臺linux服務器,並搭建好apache+mysql數據庫的環境,拷貝PrestaShop代碼到服務器中,進行安裝,並調試能夠打開。linux
咱們來嘗試一下如何利用該漏洞,在後臺admin-rename目錄下的filemanager文件夾dialog.php的文件,進行調用,這個頁面就是控制上傳文件,上傳圖片的,使用action能夠對上傳的參數進行安全控制,咱們能夠構造代碼執行,admin-rename/filemanager/execute.php?action=rename_folder,post的方式進行提交,發送數據到這個文件代碼裏,利用PHP的反序列化就能夠自動的解析代碼,達到遠程代碼注入執行的效果。web
PrestaShop網站漏洞修復與辦法ajax
升級PrestaShop的版本到最新版本,設置php.ini的解析功能爲off具體是phar.readonly=off,這裏設置爲關閉,對網站的上傳功能增強安全過濾,過濾非法參數的插入,對網站的漏洞代碼進行功能性的註釋。sql