Personnel Record Management System 任意文件上传致RCE漏洞 漏洞概述 根因分析 (第21-27行) 使用 处理上传的图片文件,但: 未使用返回值验证上传是否成功 无服务器端文件扩展名白名单验证(如检查 扩展名) 任意文件类型(包括可执行的恶意PHP脚本)均可上传并存储到服务器 --- 影响范围 攻击者可: 绕过文件类型验证和授权机制 直接上传恶意WebShell脚本到服务器 获得服务器级权限,实现完整RCE 远程执行任意系统命令、修改服务器配置、窃取核心业务数据、植入勒索软件或加密货币挖矿程序 横向渗透内网其他服务器 --- POC代码与利用步骤 Step 1: 认证绕过 使用SQL注入payload登录管理员后台: Step 2: 上传恶意WebShell 创建恶意PHP文件 : 通过"Add Employee"模块的Image上传字段提交该文件。 Step 3: 触发Payload执行 直接访问上传文件路径: 成功执行PHP代码,显示phpinfo页面,证明RCE。 --- 修复方案 1. 补丁管理:密切关注官方渠道安全更新,及时部署补丁或升级版本 2. 严格文件上传验证: - 遵循"永不信任外部输入"原则 - 建立严格的服务器端白名单(仅允许 , , 等) - 实施严格的MIME类型验证 - 强制随机重命名上传文件,防止攻击者猜测文件路径 3. 最小权限原则: - 分配专用数据库账户,仅赋予当前业务所需的读写权限 - 禁止高权限账户(如root)连接数据库 4. 环境加固: - 生产环境禁用PHP错误回显 - 部署Web应用防火墙(WAF)拦截SQL注入和恶意上传攻击特征 - 定期进行安全代码审计