漏洞关键信息 受影响的产品 ONLINE MUSIC SITE 产品主页 https://code-projects.org/online-music-site-in-php-with-source-code/ 受影响和/或已修复的版本 V1.0 提交者 M202372062 易受攻击的文件 AdminUpdateCategory.php 版本 V1.0 漏洞类型 任意文件上传漏洞 根本原因 在"Online Music Site"项目的"AdminUpdateCategory.php"文件中,存在一个任意文件上传漏洞。根本原因是攻击者可以通过"Content-Type"和"Content-Disposition"绕过文件类型检测,然后上传恶意的特洛伊木马文件。结果,攻击者可以上传恶意脚本并执行它们以直接控制服务器、窃取数据或发起后续的攻击,从而严重威胁系统的安全性。 影响 利用此任意文件上传漏洞可以让攻击者上传恶意脚本并执行它们以直接控制服务器、窃取数据或发起后续的攻击,严重威胁系统的安全性。 问题类型 任意文件上传漏洞 漏洞描述 在"Online Music Site"项目的"AdminUpdateCategory.php"文件中,存在一个任意文件上传漏洞。根本原因是攻击者可以通过"Content-Type"和"Content-Disposition"绕过文件类型检测,然后上传恶意的特洛伊木马文件。结果,攻击者可以上传恶意脚本并执行它们以直接控制服务器、窃取数据或发起后续的攻击,严重威胁系统的安全性。 验证漏洞 上传"11111.png"文件进行数据包捕获 测试连接 使用webshell管理工具连接测试 建议修复 1. 拒绝仅验证 Content-Type:不要仅通过 HTTP 请求头的 Content-Type 来判断文件类型,而应该验证文件的实际内容(如读取文件头的字节特性,图像文件具有固定的 magic 数字标识符),彻底消除伪造 Content-Type 绕过验证的可能性。 2. 严格限制文件后缀:采用白名单机制,明确指定允许上传的文件类型(e.g. 仅允许 .jpg、.png、.pdf),实行黑名单机制的同时,过滤文件名,禁止特殊字符、脚本后缀(e.g. .php、.asp)以及绕过后缀(e.g. .php.png)。 3. 安全存储和访问控制:上传文件存储到非Web可达目录或通过后端程序读取(而不是直接暴露文件路径);重命名上传的文件(如随机字符串+固定的后缀)防止攻击者猜测路径执行恶意文件。