关键漏洞信息 受影响产品 项目名称: projectworlds Online Time Table Generator Portal-Source code 受影响版本: 当前版本(截至2023年3月14日) 修复版本: 尚未针对此漏洞披露进行修补 漏洞文件 易受攻击的文件: /admin/updatestudent.php 软件链接 下载链接 问题类型 CWE编号: CWE-434: 无限制上传危险类型的文件 漏洞类型: 通过无限制文件上传实现远程代码执行 根因 文件上传模块未能正确验证用户提供的文件类型和扩展名。攻击者可以通过创建恶意文件(如“shell.php”)并通过上传表单提交来绕过安全控制。 影响 恶意软件分发 远程代码执行 (RCE) 数据泄露 拒绝服务 (DoS) Web Shell 安装 破坏安全控制 声誉损害 描述 门户站点的文件上传模块无法验证文件类型和扩展名。通过创建恶意文件(例如,“shell.php”)并使用上传表单提交,攻击者可以绕过安全控制。在“/admin/updatestudent.php”更新学生记录时,使用电子邮件地址“jack@gmail.com”并提交“.php”文件,内容如下: 服务器将文件存储为“student/image/jack@gmail.com”,没有进行任何清理,允许通过HTTP请求访问上传的文件。 漏洞细节和POC 易受攻击的参数: 文件上传字段 (POST 请求) 复现步骤: 1. 访问 2. 使用任意学生ID和电子邮件地址上传“.php”文件 3. 成功访问路径,执行 函数 建议修复 输入验证与过滤: 确保参数仅允许预期字符(例如,数字或字母)以防止路径遍历攻击。 文件名清理: 严格验证上传的文件名。避免使用用户提供的原始名称,并限制允许的文件扩展名。 随机化存储名称: 生成随机文件名以防止攻击者直接访问恶意文件。 文件类型验证: 验证文件扩展名和 MIME 类型以检测伪造格式。 存储目录权限: 将上传文件存储在非Web可访问目录中,或配置服务器禁用脚本执行。 服务器配置: 对于Apache/Nginx,在上传目录中限制执行权限(例如, )。 错误处理: 避免暴露内部路径详细信息,使用自定义错误页面。