ASP.NET ViewState のリモートコードの実行

critical Web App Scanning プラグイン ID 113340

概要

ASP.NET ViewState のリモートコードの実行

説明

ViewState は ASP.NET フレームワークに固有のパラメーターであり、ユーザーが異なる Web ページ間で値とコントロールを保存しながらアプリケーションをナビゲートするときのブレッドクラムトレイルとして使用されます。__viewstate パラメーターのページに存在する場合、すべての値がシリアル化され、非表示フィールドの base64 でエンコードされます。base64 エンコーディングに加えて、MAC (メッセージ認証コード) で署名して整合性を保証し、暗号化して機密性を保証することもできます。

ビューステートが署名されていない場合、内部に保存されている情報によっては、内部に保存されている情報を攻撃者が変更できる可能性があります。これにより、リモートコード実行を実現する可能性があります。

ソリューション

ASP.NET は、特定のページに「<%@Page EnableViewStateMAC='True' %>」を追加するか、web.config ファイル内に「<pages enableViewStateMac='true'>」を追加することで、ViewState パラメーターの MAC 検証を提供します。

参考資料

https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html

https://devblogs.microsoft.com/aspnet/cryptographic-improvements-in-asp-net-4-5-pt-2/

https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.page.enableviewstatemac?view=netframework-4.8

https://docs.microsoft.com/en-us/previous-versions/dotnet/articles/ms972976(v=msdn.10)

プラグインの詳細

深刻度: Critical

ID: 113340

タイプ: remote

ファミリー: Web Applications

公開日: 2022/9/6

更新日: 2022/9/6

スキャン テンプレート: basic, full, pci, scan

リスク情報

VPR

リスクファクター: High

スコア: 8.5

CVSS v2

リスクファクター: High

基本値: 7.6

ベクトル: CVSS2#AV:N/AC:H/Au:N/C:C/I:C/A:C

CVSS スコアのソース: Tenable

CVSS v3

リスクファクター: Critical

基本値: 9

ベクトル: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H

CVSS スコアのソース: Tenable

CVSS v4

リスクファクター: Critical

Base Score: 9.2

Vector: CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

CVSS スコアのソース: Tenable

参照情報