CodeDom 漏洞模式与 SharePoint RCE
一、介绍 CodeDom 机制 .NET Framework 提供一种叫做 代码文档对象模型 (CodeDom) 的机制。 我们可以使用 CodeDom 元素组合成 CodeDom 图来表示一段源代码的逻辑。 CodeDom 有两个主要的功能: 根据 CodeDom 图生成源代码。 将源代码即时编译为程序集。 当然,也可以忽略中间过程,直接将 CodeDom 图编译为程序集。 二、关于 CodeDom 的例子 为了介绍 CodeDom 的一般用法,下面是提供一个关于 CodeDom 例子。该例子展示了如何使用一段 CodeDom 程序描述一段源码的逻辑。 目标源码类似下面这样: namespace MyNamespace { using System; public class MyClass { public static void MyMethod() { Console.WriteLine("Hello, World!"); } } } 对应的 CodeDom 例子: using System; using System.CodeDom; using System.CodeDom.Compiler; using Microsoft.CSharp; using System.Reflection; namespace CodeDomExample { class Program { static void Main(string[] args) { /************************************************************ // 第一部分:创建 CodeCompileUnit,构建 CodeDom 图以表示一段代码逻辑 ************************************************************/ // 创建一个 CodeCompileUnit 对象,表示要编译的代码单元 CodeCompileUnit compileUnit = new CodeCompileUnit(); // 创建一个 CodeNamespace 对象,表示代码的命名空间 CodeNamespace codeNamespace = new CodeNamespace("MyNamespace"); // 添加需要引用的命名空间 codeNamespace....