关键漏洞信息 受影响产品 项目名称: projectworlds Online Time Table Generator Portal-Source code 受影响版本: 当前发布版本(截至2023年3月14日) 修复版本: 未发布补丁,因为尚未披露漏洞 漏洞文件 易受攻击的文件: /admin/add_student.php 软件链接 下载链接 问题类型 CWE编号: CWE-434: 无限制上传危险类型的文件 漏洞类型 远程代码执行通过无限制文件上传 根因 文件上传功能在“/admin/add_student.php”中缺乏对用户提供的文件的适当验证。由于缺少文件类型检查和扩展名过滤,攻击者可以上传恶意脚本(如.php、.shell.php)并利用上传表单进行攻击。 影响 恶意软件分发 远程代码执行 (RCE) 数据泄露 拒绝服务 (DoS) Web 应用程序安装 绕过安全控制 声誉损害 描述 端口文件的文件上传模块未能验证文件类型和扩展名。通过创建一个恶意文件(例如,“shell.php”)并使用上传表单提交,攻击者可以绕过安全控制。添加一个新学生信息时,使用电子邮件地址“jack@gmail.com”并提交包含以下内容的.php文件:服务器将文件存储在“student/image/jack@gmail.com”中,未经清理,允许通过HTTP请求访问上传的文件。 漏洞细节和POC 易受攻击的参数: - 文件上传字段:“$_FILES['pic']['name']”(POST 请求) 建议修复 输入验证和过滤: 确保参数只允许预期的字符(例如,数字或字母),以防止路径遍历攻击。 文件重命名: 严格验证上传的文件名。避免使用用户提供的原始名称,并限制允许的文件扩展名。 随机化存储名称: 生成随机化的文件名,以防止攻击者直接访问恶意文件。 文件类型验证: 验证文件扩展名和MIME类型,以检测伪造的格式。 存储目录权限: 将上传的文件存储在非web可访问的目录中,或配置服务器以禁用脚本执行。 服务器配置: 对于Apache/Nginx,限制上传目录中的执行权限(例如,php_flag engine off)。 错误处理: 避免通过使用自定义错误页面来暴露内部路径详细信息。