jQuery-File-Upload任意文件上传

来源:scanv2018.10.26

一 漏洞概述

1.1简介

Jquery-File-Upload[1]是jquery文件上传的一个小部件,支持多个文件选择,拖放,进度条,文件

上传验证、图像,音频和视频的预览。支持跨域,断点续传以及客户端图像大小调整。 适用于支持标

准HTML表单文件上载的任何服务器端平台(PHP,Python,Ruby on Rails,Java,Node.js,Go等)。

2018/10/09,该软件php版本的server端被曝光出一个任意文件上传的漏洞[2]。

2018/10/19,Seebug 平台收录了该漏洞[3],知道创宇 404 实验室漏洞情报团队开始漏洞应急,

复现幵分析了该漏洞。

1.2影响版本

jQuery-File-Upload <= v9.22.0

 

二 漏洞复现

2.1复现环境

  • Windows 10
  • jQuery-File-Upload v9.22.0
  • Nginx

2.2环境搭建

网上下载源码本地搭建。

Apache环境需要先将项目中server/php/files下的.htaccess文件移除,否则漏洞无法复现。

Nginx等环境可直接复现该漏洞

2.3 复现过程及结果

利用curl可直接上传webshell

 

在apache环境下,由于.htaccess文件的存在,header被强制转化为下载形式,幵且文件后缀名被改为html。

在部分apache环境下会导致服务器返回500错误。

 

三 修复建议。

1、升级到jQuery-File-Upolad 最新版[4]。


2、源代码修改

通过对比jQuery-File-Upolad 9.22.0和jQuery-File-Upolad 9.22.1两个不同版本,

可看到官方对该漏洞的修补如下: 




增加了文件类型检查,只允许图片类文件上传。

3.使用第三方防火墙进行防护(如创宇盾[https://www.yunaq.com/cyd/]

4.技术业务咨询:

知道创宇技术业务咨询热线:400-060-9587(政府、国有企业)

                                                028-68360638(互联网企业)

 

四 相关链接

参考链接:

[1] jQuery-File-Upload Github地址
https://github.com/blueimp/jQuery-File-Upload

[2] 漏洞详情
http://www.vapidlabs.com/advisory.php?v=204

[3] Seebug 收录
https://www.seebug.org/vuldb/ssvid-97625

[4] jQuery-File-Upload最新版下载地址
https://github.com/blueimp/jQuery-File-Upload/releases/tag/v9.23.0

[5] jQuery-File-Upload补丁对比
https://github.com/blueimp/jQuery-File-Upload/commit/aeb47e51c67df8a504b77265
95576c1c66b5dc2f

热门文章

关注知道创宇云安全

获取安全动态