gpt4 book ai didi

c# - Asp.net EnableViewStateMac 和恶意代码 [12 月安全更新]

转载 作者:行者123 更新时间:2023-11-30 12:28:50 25 4
gpt4 key购买 nike

在最新的Asp.Net December 2013 Security updates微软为 ASP.Net 发布了一个补丁——“不安全的 ASP.NET Web 表单 (.aspx) 配置可能允许远程代码执行”。相关知识库文章是 2905247

据我所知,ViewStateMac 只是用来确定这个 ViewState 是由服务器生成的,而不是由攻击者生成的。但他们在安全更新文章中说:

If a web developer sets EnableViewStateMac=false for any page in his site, an attacker could leverage this to upload and invoke arbitrary executable code within the context of the web service account. This is an example of a remote code execution (RCE) attack.

例如,如果我为某些 aspx 页面禁用 EnableViewStateMac,它如何允许攻击者在我的 Web 应用程序的上下文中执行恶意代码?据我所知,在最坏的情况下,攻击者可以欺骗 ViewState 以获得一些虚假数据\事件\验证。但它只会影响这个页面。而且我无法通过将要执行的 ViewState 上传任何恶意 C# 代码。在这种情况下,RCE 攻击是什么意思?

最佳答案

我找不到有关此漏洞的更多详细信息,因此我的回答只是推测可能的攻击媒介。

MAC 是 ViewState 值的签名,使用 EnableViewStateMac=true ASP.NET 将检查 MAC 签名是否实际将 ViewState 值签名为真实的。这意味着 __VIEWSTATE 隐藏字段中客户端发送的 ViewState 值已被验证为来自服务器。

现在假设处理 ViewState 值的代码容易受到对象反序列化的攻击。微软公告指出:

An unauthenticated attacker could send specially crafted HTTP content to the targeted server, potentially allowing the attacker to run code on the server in the context of the service account running on the ASP.NET site.

使用 EnableViewStateMac=true 无法利用此漏洞,因为在处理 ViewState 值之前验证 MAC。任何不是来自服务器的值都会遇到 Validation of viewstate MAC failed 异常消息。

但是,使用 EnableViewStateMac=false 时,攻击者可以操纵整个 ViewState 值以利用 buffer overflow/用privilege escalation逃避攻击并执行作为有效负载注入(inject)到 __VIEWSTATE 字段中的任意代码。

因此总而言之,由于不再验证 ViewState 值,它打开了这个未公开的攻击媒介进行攻击的领域。

关于c# - Asp.net EnableViewStateMac 和恶意代码 [12 月安全更新],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20505734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com