通过jQuery文件上传,数以千计的应用程序易受RCE攻击

由于Apache的安全性变化,该漏洞已经存在了八年。

Blueimp广泛使用的一个名为jQuery File Upload的插件包含一个多年前的漏洞,可能会使7,800个不同的软件应用程序面临危险和远程代码执行(RCE)的风险。

jQuery File Upload是一个用户贡献的开源软件包,面向软件开发人员,将自身描述为“文件上传小部件,具有多个文件选择,拖放支持,进度条,验证和预览图像以及音频和视频对于jQuery。“它适用于支持标准HTML表单文件上传的任何服务器端平台,例如PHP,Python,Ruby on Rails,Java和Node.js.

Akamai安全情报响应小组(SIRT)研究员Larry Cashdollar仔细研究了包中的两个PHP文件 - Upload.php和UploadHandler.php - 在代码中的目录server / php路径下,发现了一个明显的漏洞。

“Upload.php文件调用所有文件上传代码所在的主文件UploadHandler.php,”他在上周的一篇帖子中解释道。 “我还看到所有文件都上传到了Web服务器根路径中的files /目录。我用curl写了一个快速的命令行测试,一个简单的PHP shell文件确认我可以上传一个web shell并在服务器上运行命令。“

Cashdollar告诉Threatpost,问题不仅是文件上传到Web服务器的路径,而且攻击者不需要任何形式的身份验证来上传文件。

“我们不会检查这些文件是否可以在服务器上执行,”他告诉我们。 “一旦攻击者上传了可以由服务器执行的PHP或其他文件,他们就可以使用Web服务器的权限在该服务器上运行命令 - 通常是'www-data'。这开启了一系列攻击。“

例如,攻击者可以上传PHP shell,让他或她访问系统,以便安装恶意软件,从网站上泄露数据,使用shell转移到网络的其他部分(取决于服务器的位置)托管),破坏网站,使用网站作为僵尸网络的命令和控制(C2)服务器,等等。

在他通知jQuery文件上传作者Sebastian Tschan的问题后,发现该漏洞(CVE-2018-9206)是在Blueimp的Web服务器Apache禁用了一个安全控件时使用的,该控件是该小部件用于其根目录的文件访问控制。从Apache 2.3.9开始,消除了对.htaccess文件的默认支持,保留了不受保护的任何使用该功能的代码对文件夹访问施加限制 - 包括jQuery文件上载。

“Blueimp的代码依赖.htaccess控件来防止恶意文件在服务器上上传和执行,”Cashdollar告诉我们。 “默认情况下,在Apache 2.3.9版本中删除了此控件。因此.htaccess文件被忽略,使得软件在没有安全控制的情况下开放利用。作者(Blueimp)并未意识到Apache默认配置中的这种变化(我也是)。“

Apache 2.3.9于2010年首次推出 - 意味着该缺陷已经存在了十年的大部分时间。对手也对此有所了解,YouTube上的大量视频展示了如何利用这个问题。然而,不知何故,这个漏洞一直没有被研究人员所关注。

更大的问题是jQuery文件上传代码生产包中使用的代码叉和变体 - 根据Cashdollar的说法,其中约有7,800个 - 也容易受到文件上传和代码执行的影响。这反过来会将应用程序打开,直至数据泄露或恶意软件。

Cashdollar说:“这些代码叉中的大部分将原始漏洞带入其代码中。” “在某些情况下,即使在项目作者更改了原始的Blueimp代码以适应他们自己的项目之后,该漏洞仍然存在,每个项目都可以通过我的概念验证示例的细微变化来利用。”

Blueimp已经在最新版本的软件中纠正了这个问题,默认情况下只允许上传图像文件,例如文件类型GIF,JPG,JPEG和PNG。但是,使用Blueimp代码库的项目必须发布自己的修复程序。

“除非这些项目的作者修改代码或不依赖.htaccess进行安全保护,否则它们也是脆弱的,”Cashdollar说。

消息来源:threatpost 

猜你喜欢

转载自blog.csdn.net/liaoxj2046/article/details/83344004