在Newtonsoft Json中使用TypeName处理警告

在Newtonsoft Json中使用TypeName处理警告,第1张

在Newtonsoft Json中使用TypeName处理警告

当使用

TypeNameHandling.All
和不使用SerializationBinder进行反序列化检查时,json.net会尝试创建一种类型的实例,该实例作为JSON中的元数据出现。

public class Car{    public string Maker { get; set; }    public string Model { get; set; }}{   "$type": "Car",   "Maker": "Ford",   "Model": "Explorer"} //create a Car and set property values

但是攻击者可以向您发送代码或框架中存在的危险类型。

即从这里开始

System.CodeDom.Compiler.TempFileCollection
是一个可序列化的类,其目的是维护由编译过程产生的临时文件列表,并在不再需要它们时将其删除。为了确保删除文件,该类实现了一个终结器,该终结器将在垃圾收集器清理对象时调用。攻击者将能够构造此类的序列化版本,该版本将其内部文件集合指向受害者系统上的任何文件。这将在反序列化后的某个时候删除,而无需反序列化应用程序的任何交互。

    [Serializable]    public class TempFileCollection    {       private Hashtable files;       // Other stuff...       ~TempFileCollection()       {         if (KeepFiles) {return}         foreach (string file in files.Keys)         { File.Delete(file);         }       }    }   {       "$type": "System.CodeDom.Compiler.TempFileCollection",       "basePath": "%SYSTEMDRIVE",       "KeepFiles": "False",       "TempDir": "%SYSTEMROOT%"    } // or something like this, I just guessing but you got the idea


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5441142.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存