jQuery-File-Upload <= 9.x 远程命令执行漏洞
摘要:VulnSpy团队对代码的审核中发现了另一个严重的命令执行漏洞,该漏洞允许攻击者通过上传恶意图像文件来执行任意系统命令
jQuery-File-Upload是Github自jQuery以来最受欢迎的jQuery项目,它最近被曝光为三年的免费文件上传漏洞,后来在v9.22.2中发布。 已修复,但在VulnSpy团队对代码的审核中发现了另一个严重的命令执行漏洞,该漏洞允许攻击者通过上传恶意图像文件来执行任意系统命令。
注意:旧标题(jQuery-File-Upload <= 9.x远程命令执行漏洞(ImageMagick / Ghostscript))可能会产生误导。 该漏洞实际上不是jQuery-File-Upload中的漏洞,但由于jQuery-File-Upload默认调用Imagek处理照片,并且使用jQuery-File-Upload,RCE的范围将更大,更容易 使用比以前的任意文件上传漏洞。 如果您无法确保服务器上的ImageMagick是安全的,请使用jQuery-File-Upload将image_library设置为0
漏洞详细信息
在jQuery-File-Upload PHP上传处理文件/server/php/UploadHandler.php中,首先使用Imagick来验证上传的图像:
protected function get_image_size($file_path) { if ($this->options['image_library']) { if (extension_loaded('imagick')) { $image = new \Imagick(); try { if (@$image->pingImage($file_path)) { $dimensions = array($image->getImageWidth(), $image->getImageHeight()); $image->destroy(); return $dimensions; } return false; } catch (\Exception $e) { error_log($e->getMessage()); } } if ($this->options['image_library'] === 2) { $cmd = $this->options['identify_bin']; $cmd .= ' -ping '.escapeshellarg($file_path); exec($cmd, $output, $error); if (!$error && !empty($output)) { // image.jpg JPEG 1920x1080 1920x1080+0+0 8-bit sRGB 465KB 0.000u 0:00.000 $infos = preg_split('/\s+/', substr($output[0], strlen($file_path))); $dimensions = preg_split('/x/', $infos[2]); return $dimensions; } return false; } } if (!function_exists('getimagesize')) { error_log('Function not found: getimagesize'); return false; } return @getimagesize($file_path); }
我们都知道 ImageMagick 在近几年来出现了多个严重的安全漏洞:
More Ghostscript Issues: Should we disable PS coders in policy.xml by default?
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库:
// Set to 0 to use the GD library to scale and orient images, // set to 1 to use imagick (if installed, falls back to GD), // set to 2 to use the ImageMagick convert binary directly: 'image_library' => 0
参考
Remote code execution vulnerability in the PHP component
上一篇:CVE-2019-11477-Linux内核TCP协议栈溢出漏洞exp
下一篇:CVE2019-1019Microsoft Windows 10.0.17134.648 - HTTP -> SMB NTLM reflection导致权限提升漏洞
人机验证(Captcha)绕过方法:使用Chrome开发者工具在目标网站登录页面上执行简单的元素编辑,以实现Captcha绕过
牛创网络: " 人机身份验证(Captcha)通常显示在网站的注册,登录名和密码重置页面上。 以下是目标网站在登录页面中排列的验证码机制。 从上图可以
2020-01-26 12:44:09 )8872( 亮了
自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
牛创网络: "自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
2020-01-30 14:04:47 )6288( 亮了
Grafana CVE-2020-13379漏洞分析:重定向和URL参数注入漏洞的综合利用可以在任何Grafana产品实例中实现未经授权的服务器端请求伪造攻击SSRF
牛创网络: "在Grafana产品实例中,综合利用重定向和URL参数注入漏洞可以实现未经授权的服务器端请求伪造攻击(SSRF)。该漏洞影响Grafana 3 0 1至7 0 1版本。
2020-08-12 14:26:44 )4301( 亮了
Nginx反向代理配置及反向代理泛目录,目录,全站方法
牛创网络: "使用nginx代理dan(sui)是http响应消息写入服务地址或Web绝对路径的情况。 写一个死的服务地址是很少见的,但它偶尔也会发生。 最棘手的是写入web绝对路径,特别是如果绝对路径没有公共前缀
2019-06-17 10:08:58 )3858( 亮了
fortify sca自定义代码安全扫描工具扫描规则(源代码编写、规则定义和扫描结果展示)
牛创网络: "一般安全问题(例如代码注入漏洞),当前fortify sca规则具有很多误报,可通过规则优化来减少误报。自带的扫描规则不能检测到这些问题。 需要自定义扫描规则,合规性角度展示安全风险。
2020-02-12 10:49:07 )3505( 亮了
整理几款2020年流行的漏洞扫描工具
牛创网络: "漏洞扫描器就是确保可以及时准确地检测信息平台基础架构的安全性,确保业务的平稳发展,业务的高效快速发展以及公司,企业和国家 地区的所有信息资产的维护安全。
2020-08-05 14:36:26 )2536( 亮了
微擎安装使用技巧-微擎安装的时候页面显示空白是怎么回事?
牛创网络: "我们在公众号开发中,有时候会用到微擎,那我们来看一下微擎安装的时候页面显示空白是怎么回事吧
2019-06-08 15:34:16 )2261( 亮了
渗透测试:利用前端断点拦截和JS脚本替换对前端加密数据的修改
牛创网络: " 本文介绍的两种方法,虽然断点调试比JS脚本代码替换更容易,但是JS脚本代码替换方法可以实现更强大的功能,测试人员可以根据实际需要选择适当的测试方法
2020-01-07 09:34:42 )1995( 亮了
从工业界到学界盘点SAS与R优缺点比较
牛创网络: "虽然它在业界仍然由SAS主导,但R在学术界广泛使用,因为它的免费开源属性允许用户编写和共享他们自己的应用程序 然而,由于缺乏SAS经验,许多获得数据分析学位的学生很难找到工作。
2019-07-13 22:25:29 )1842( 亮了
41款APP侵犯用户隐私权:QQ,小米,搜狐,新浪,人人均被通报
牛创网络: "随着互联网的不断发展,我们进入了一个时代,每个人都离不开手机。 但是,APP越来越侵犯了用户隐私权。12月19日,工业和信息化部发布了《关于侵犯用户权益的APP(第一批)》的通知。
2019-12-20 11:28:14 )1775( 亮了