CVE-2021-46075
漏洞标题:车辆服务管理系统 - '多个'权限提升导致 CRUD 操作
CVE:CVE-2021-46075
CVSS:7.2 高危
参考资料:
描述:
Sourcecodester 车辆服务管理系统 1.0 存在一个权限提升漏洞。员工账户用户可以访问管理员资源并执行 CRUD 操作。
1. 车辆服务管理系统 - '用户列表' (/admin/?page=user/list) (/admin/?page=user/manage_user)
漏洞利用:
- 访问管理后台 http://localhost/vehicle_service/admin
- 在浏览器 A(Chrome)中登录管理员账户
- 在浏览器 B(Firefox)中登录员工账户
- 在管理员账户(Chrome)中,导航到“用户列表”部分,然后点击“新建”按钮。
- 复制“新建用户”的链接 http://localhost/vehicle_service/admin/?page=user/manage_user
- 在员工账户(Firefox)中没有“用户列表”部分,因为员工账户没有创建用户的权限。
- 将复制的链接粘贴到浏览器 B(Firefox)中
- 现在我们可以访问“创建用户”页面。
- 输入所需详细信息,然后点击“保存”按钮。
- 在管理员账户(Chrome)中,导航到“用户列表”部分 http://localhost/vehicle_service/admin/?page=user/list
- 新用户已成功创建。
- 员工账户可以访问“用户列表”页面和“创建用户”页面。
- 员工账户可以对用户执行创建、读取、更新和删除操作。
2. 车辆服务管理系统 - '分类列表' (/admin/?page=maintenance/category) (/admin/?page=maintenance/manage_category)
漏洞利用:
- 访问管理后台 http://localhost/vehicle_service/admin
- 在浏览器 A(Chrome)中登录管理员账户
- 在浏览器 B(Firefox)中登录员工账户
- 在管理员账户(Chrome)中,导航到“分类列表”部分,然后点击“新建”按钮。
- 复制“新建分类”的链接 http://localhost/vehicle_service/admin/?page=maintenance/manage_category
- 在员工账户(Firefox)中没有“分类列表”部分,因为员工账户没有创建分类的权限。
- 将复制的链接粘贴到浏览器 B(Firefox)中
- 现在我们可以访问“创建分类”页面。
- 输入所需详细信息,然后点击“保存”按钮。
- 在管理员账户(Chrome)中,导航到“分类列表”部分 http://localhost/vehicle_service/admin/?page=maintenance/category
- 新分类已成功创建。
- 员工账户可以访问“分类列表”页面和“创建分类”页面。
- 员工账户可以对分类执行创建、读取、更新和删除操作。
3. 车辆服务管理系统 - '服务列表' (/admin/?page=maintenance/services) (/admin/?page=maintenance/manage_service)
漏洞利用:
- 访问管理后台 http://localhost/vehicle_service/admin
- 在浏览器 A(Chrome)中登录管理员账户
- 在浏览器 B(Firefox)中登录员工账户
- 在管理员账户(Chrome)中,导航到“服务列表”部分,然后点击“新建”按钮。
- 复制“新建服务”的链接 http://localhost/vehicle_service/admin/?page=maintenance/manage_service
- 在员工账户(Firefox)中没有“服务列表”部分,因为员工账户没有创建服务的权限。
- 将复制的链接粘贴到浏览器 B(Firefox)中
- 现在我们可以访问“创建服务”页面。
- 输入所需详细信息,然后点击“保存”按钮。
- 在管理员账户(Chrome)中,导航到“服务列表”部分 http://localhost/vehicle_service/admin/?page=maintenance/services
- 新服务已成功创建。
- 员工账户可以访问“服务列表”页面和“创建服务”页面。
- 员工账户可以对服务执行创建、读取、更新和删除操作。
4. 车辆服务管理系统 - '设置' (/admin/?page=system_info)
漏洞利用:
- 访问管理后台 http://localhost/vehicle_service/admin
- 在浏览器 A(Chrome)中登录管理员账户
- 在浏览器 B(Firefox)中登录员工账户
- 在管理员账户(Chrome)中,导航到“设置”部分。
- 复制“设置”部分的链接 http://localhost/vehicle_service/admin/?page=system_info
- 在员工账户(Firefox)中没有“设置”部分,因为员工账户没有访问设置的权限。
- 将复制的链接粘贴到浏览器 B(Firefox)中
- 现在我们可以访问“设置”页面。
- 输入所需详细信息,然后点击“保存”按钮。
- 在管理员账户(Chrome)中,导航到“设置”部分 http://localhost/vehicle_service/admin/?page=system_info
- 详细信息已成功更新。
- 员工账户可以访问“设置”页面。
- 员工账户可以更新设置。
影响:
远程攻击者可以获得通常情况下无法访问的资源的提升访问权限。使用员工账户的用户可以访问管理员资源并执行 CRUD 操作。
缓解措施:
建议实施以下措施:
- 适当的特权账户管理
- 监控和管理所有特权会话
- 强密码策略和强制执行
- 对用户输入进行清理并保护数据库