应用对象
System Center 2016 Operations Manager

问题描述

缺少输入验证和输出编码将会允许 JavaScript 注入,从而导致反射跨站点脚本 (XSS)。

反射跨站点脚本可用于向 Microsoft System Center 2016 身份验证页面注入任意 JavaScript。 可以拦截以下 GET 请求并修改 SpaceID,以便在 Web 控制台的左侧导航窗格中注入任意字符串。

GET/OperationsManager/InternalPages/NavigationTree.aspx?SpaceId=1002&ViewId=Favorites_Overview HTTP/1.1

下面是任意字符串的示例:

abc%3E%3C","00000000-0000-0000-0000-000000000000");alert(1);//%3E

恶意 JavaScript 一旦注入,就可以修改页面的当前行为并传递:特洛伊木马程序、强制恶意重定向、内容欺骗、键盘记录器、内容泄漏、VIEWSTATE 和验证器令牌泄漏(击败反 CSRF 控件)等。

攻击由以下步骤构成

  1. 攻击者使用 XSS 有效负载生成 System Center 的特定已验证 GET 请求,并诱使受害者访问特定 URL 或诱使用户访问触发特定请求的仿冒欺诈。

  2. 经过身份验证的受害者加载/重新加载主页。

注意: 攻击适用于任何 viewID 值以及具有 SpaceID 查询字符串参数的每个请求。

测试用例

预期结果: 无效的 SpaceID 错误或空窗格,并且没有执行随机 JavaScript

结果: 执行任意 JavaScript。

解决方案

实施严格的输入验证。 只接受整数作为 SpaceID,因此针对输入的数据类型检查足以修复该漏洞。

已添加检查以确保 SpaceID 仅为支持的值(1001 和 1002),否则该树中的数据为空。

参考

请参阅 CVE-2020-1331 中的安全指南公告

安全分类

反射跨站点脚本,内容欺骗

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。