作者: @Ambulong
jQuery-File-Upload 是 Github 上继 jQuery 之后最受关注的 jQuery 项目,该项目最近被披露出一个存在了长达三年之久的任意文件上传漏洞,该漏洞在随后发布的 v9.22.2 版本中被修复,但是在 VulnSpy 团队对代码的复查中发现了另外一个严重的命令执行漏洞,该漏洞允许攻击者通过上传恶意的图片文件来执行任意系统命令。
注:旧标题(jQuery-File-Upload <= 9.x 远程命令执行漏洞 (ImageMagick/Ghostscript))可能有些误导,该漏洞实际上并不是jQuery-File-Upload中的漏洞,但是因为jQuery-File-Upload默认调用了Imagick处理照片,加上jQuery-File-Upload的使用范围大,该RCE的影响范围会比上一个任意文件上传漏洞更大,更容易利用。在无法确保自己服务器上的 ImageMagick 是否安全的情况下,如果使用jQuery-File-Upload请将image_library
设置为0
漏洞细节
在 jQuery-File-Upload 的 PHP 上传处理文件 /server/php/UploadHandler.php 中优先使用了 Imagick 来校验上传的图片:
|
|
我们都知道 ImageMagick 在近几年来出现了多个严重的安全漏洞:
- More Ghostscript Issues: Should we disable PS coders in policy.xml by default?
- CVE Request - multiple ghostscript -dSAFER sandbox problems
- CVE Request: GraphicsMagick and ImageMagick popen() shell vulnerability via filename
因此我们可已直接通过上传含有恶意代码的图片来利用该漏洞,按照老规矩,VulnSpy 已经准备好了在线的实验环境,大家可以移步到下面链接进行测试:
在线测试地址:https://www.vulnspy.com/cn-jquery-file-upload-below-v9.x-rce/
如何修复
将 /server/php/UploadHandler.php 中的默认图片处理库修改为GD库:
|
|