PrestaShop 远程代码注入漏洞详细与修补办法


      PrestaShop网站的漏洞越来越多,该网站系统是很多外贸网站在使用的一个开源

系统,从之前的1.0初始版本到现在的1.7版本,经历了多次的升级,系统使用的人也

越来越多,国内使用该系统的外贸公司也很多,PrestaShop扩展性较高,模板也多,

多种货币自由切换,并支持信用卡以及paypal支付,是外贸网站的首选。就在最近几

天,PrestaShop被爆出有远程代码注入漏洞,该漏洞影响范围较光,危害较大,可

以上传webshell到网站根目录下。

 
 
2018年11月7号PrestaShop官方发布了最新的版本,并修复了网站的漏洞,其中包含

了之前被爆出的文件上传漏洞,以及恶意删除图片文件夹的漏洞,该漏洞的利用条件

是需要有网站的后台管理权限。

 
 
这次发现的PrestaShop漏洞,是远程代码注入漏洞,漏洞产生的代码如下
 
在后台的admin-dev目录下filemanager文件里的ajax_calls.php代码,这个远程的注入

漏洞是后台处理上传文件的功能导致的,代码里的getimagesize()函数是获取图片地址

的一个函数,该函数使用了php反序列化,这个反序列化存在远程调用的一个功能,就

是在这个功能里存在远程代码注入与执行,我们构造恶意的注入代码对其图片代码提

交就会执行我们的代码,我们来演示一下,首先搭建一台linux服务器,并搭建好

apache+mysql数据库的环境,拷贝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,这里设置为关闭,对网站的上传功能加强安全过滤,过滤非法参数的插入,对网站的

漏洞代码进行功能性的注释。
分享: