Operations Manager 2016 Web コンソールでの JavaScript インジェクションの防止

適用対象: 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 が挿入されると、ページの現在の動作が変更されて、トロイの木馬、悪意のある強制リダイレクト、コンテンツのなりすまし、キーロガー、コンテンツの漏えい、ビュー ステートと検証コントロールのトークンの漏えい (CSRF 攻撃の防止の阻止) などが配信される可能性があります。

攻撃は次の手順で構成されています


  1. 攻撃者は、XSS ペイロードを使用して System Center の特定の認証済み GET 要求を作成し、被害者をだまして特別な URL にアクセスさせるか、ユーザーをだまして特定の要求をトリガーするフィッシング詐欺にアクセスさせます。
  2. 認証済みの被害者が、ホームページをロード/再読み込みします。

注: この攻撃は、任意の viewID 値と、SpaceID クエリ文字列パラメーターを持つすべての要求に適用されます。


テスト ケース


期待される結果: 無効な SpaceID エラーまたは空のペインで、ランダムな JavaScript の実行なし
結果: 任意の JavaScript が実行されました。

解決策


厳密な入力検証を実装します。 整数のみが SpaceID として受け入れられるため、入力に対するデータ型チェックで十分に脆弱性を修復できます。

SpaceID がサポートされている値 (1001 と 1002) のみであることを確認するためのチェックを追加しました。それ以外の場合、ツリー内のデータは空です。

関連情報


CVE-2020-1331の セキュリティ ガイダンス アドバイザリを参照してください。

セキュリティ分類


反射型クロス サイト スクリプティング、コンテンツのなりすまし