ASP.NET ViewState 远程代码执行

critical Web App Scanning 插件 ID 113340

简介

ASP.NET ViewState 远程代码执行

描述

ViewState 是 ASP.NET 框架特有的参数,当用户在不同的网页之间浏览应用程序并保存相关值和控件时,它被用作 breadcrumb 跟踪。在页面上的 __viewstate 参数中,所有值都已被序列化,并在一个隐藏字段中以 base64 编码。除了 base64 编码外,viewstate 还可以用 MAC(消息验证代码)签名,以保证完整性,也可以加密以保证机密性。

如果 viewstate 并未签名,根据内部存储的信息,攻击者可能会修改内部存储的信息,从而可能实现远程代码执行。

解决方案

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

发布时间: 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

参考资料信息