关键漏洞信息 受影响产品 项目名称: projectworlds Online Time Table Generator Portal-Source code 版本: Current release (as of 2023-03-14) 链接: https://projectworlds.in/online-time-table-generator-php-mysql/ 漏洞文件 文件路径: /student/updateprofile.php 漏洞类型 CVE编号: CVE-434: Unrestricted Upload of File with Dangerous Type 描述: Remote Code Execution via Unrestricted File Upload 根因 问题: 文件上传功能在 中缺乏对用户上传文件的适当验证。攻击者可以上传恶意脚本(如 文件),服务器会执行这些文件,导致系统被完全控制。 影响 风险: - Malware Distribution - Remote Code Execution (RCE) - Data Breach - Denial of Service (DoS) - Web Shell Installation - Bypassing Security Controls - Reputation Damage 描述 问题详情: 门户的文件上传模块未能验证文件类型和扩展名。通过创建恶意文件(如 )并提交到上传表单,攻击者可以绕过安全控制。 代码示例: 漏洞细节和POC 易受攻击参数: File upload field: (POST request) 步骤重现: 1. 上传任意文件(如 ) 2. 访问上传的文件路径,成功执行 函数 建议修复 输入验证与过滤: 确保参数只允许预期字符,防止路径遍历攻击。 文件名清理: 严格验证上传文件名,避免使用用户提供的原始名称。 随机存储名称: 生成随机文件名,防止直接访问恶意文件。 文件类型验证: 验证文件扩展名和MIME类型,检测伪造格式。 存储目录权限: 将上传文件存储在非Web可访问目录或配置服务器禁用脚本执行。 服务器配置: 对Apache/Nginx,限制上传目录中的执行权限。 错误处理: 避免暴露内部路径细节,使用自定义错误页面。