.NET平台的安全漏洞?

.NET平台的安全漏洞?,.net,security,.net,Security,我正在做一些关于.NET安全性的研究。大多数信息来源只描述了.NET安全机制,但没有一个词说明可能存在的漏洞或需要记住的事情。你知道.NET平台上有什么安全问题吗?你可以看看。它们显示了.NET 2.0的14个漏洞,零个未修补。您确实需要查看Keith Brown的漏洞,这是一个很好的起点。到目前为止,它已经有10年的历史了,但是概念没有改变。在.NET世界中,安全问题的主要来源是使用它的开发人员。使用任何框架编写应用程序都很容易,而.NET框架也不是更好 除此之外,我能想到的唯一主要问题是所有

我正在做一些关于.NET安全性的研究。大多数信息来源只描述了.NET安全机制,但没有一个词说明可能存在的漏洞或需要记住的事情。你知道.NET平台上有什么安全问题吗?

你可以看看。它们显示了.NET 2.0的14个漏洞,零个未修补。

您确实需要查看Keith Brown的漏洞,这是一个很好的起点。到目前为止,它已经有10年的历史了,但是概念没有改变。

在.NET世界中,安全问题的主要来源是使用它的开发人员。使用任何框架编写应用程序都很容易,而.NET框架也不是更好

除此之外,我能想到的唯一主要问题是所有使用String而不是SecureString来存储密码等敏感数据的控件。NET framework的每个版本都比上一个版本好,但我认为仍然有几个常用控件不使用它们


SecureString可以看作是存储在加密内存中的字符串,使用后从内存中删除。由于.NET中的字符串是不可变的,因此任何新字符串都将存储在共享位置的内存中,以便具有相同值的新字符串可以共享该内存位置。这意味着存储在字符串中的敏感数据相对容易获取

对于一个非常有趣但不一定可利用的(因为你无论如何都需要根访问),请查看Erez Metula提供的(嗯,现在正在进行)关于使用一些技术来破解.NET框架并实现.NET Rootkits的文章。

以下是您的漏洞

在我的示例类型安全利用中,我 使用活接头来绕过类型安全。 那不是真正的安全措施 因为这样的联盟 需要完全信任。然而,如果我们 可以组合两个不同的代理 我们也可以这样做,因为 这是缺少类型检查的 可能

如果您使用TypeSafetyExploitPoC.cs 并替换TypeSystemHole方法 并添加一个引用 到包含 combinepchelper.il(用MSIL编写) 因为这是最简单的方法 编写自己的多播代理 可以调用受保护的 组合法)

这种情况再次发生的可能性很低

delegate void AnotherDelegate(Union1 u2); 

    static Union1 TypeSystemHole(Union2 u2)
    {
      Union1 u1 = null;
      CombineHelper del1 = delegate { };
      AnotherDelegate del2 = delegate(Union1 u) { u1 = u; };
      del1 = (CombineHelper)CombineHelper.CombineHack(del1, del2);
      del1(u2);
      return u1;
    }